问题描述
蒜头君和花椰妹谈恋爱了,祝福他啊们吧,蒜头君想知道他们的第100天,200天…纪念日。
输入格式
输入4个整数,有,吗,的,看,表示他们在一起的日期,保证是一个9001月1日以后的日期,蒜头君想知道他们的k(0<=k<=10000)天纪念日。
输出格式
输出格式按照yyyy-mm–dd的格式输出k天纪念日的日期。月份和天数各必须输出2位。保证最后答案年份不超过4位。
样例输入1
2016 10 1 100
样例输出1
2017-01-09
样例输入2
2017 1 1 10
样例输出
2017-01-11
题解代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int year(int y)
{
if (y % 4 != 0)
return 0;
else if (y % 100 != 0)
return 1;
else if (y % 400 == 0)
return 1;
else return 0;
}
int t(int y, int m)
{
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
return 31;
else if (m == 4 || m == 6 || m == 9 || m == 11)
return 30;
else if (year(y) == 1)
return 29;
else return 28;
}
void date(int y, int m, int d, int k)
{
while (d + k>t(y, m))
{
k -= (t(y, m) - d + 1);
d = 1;
m++;
if (m>12)
{
y++;
m -= 12;
}
}
d = d + k;
cout << y << "-";
if (m<10)
cout << 0 << m << "-";
else cout << m << "-";
if (d<10)
cout << 0 << d << endl;
else cout << d << endl;
}
int main()
{
int y, m, d, k;
cin >> y >> m >> d >> k;
date(y, m, d, k);
return 0;
}