给定一个日期,格式为yyyy-mm-dd(年份-月份-日期),计算并输出后天的日期,格式为yyyy.mm.dd(4位年份.2位月份.2位日期)。例如:输入2001-12-31,输出为:2002.01.02。
输入格式:
输入以"-"分隔的年月日。
输出格式:
输出计算后的后天的日期,以"."分隔。行末无多余字符。
输入样例 1:
2001-12-31
输出样例 1:
2002.01.02
输入样例 2:
2008-2-28
输出样例 2:
2008.03.01
给定一个日期,格式为yyyy-mm-dd(年份-月份-日期),计算并输出后天的日期,格式为yyyy.mm.dd(4位年份.2位月份.2位日期)。例如:输入2001-12-31,输出为:2002.01.02。
输入格式:
输入以"-"分隔的年月日。
输出格式:
输出计算后的后天的日期,以"."分隔。行末无多余字符。
输入样例 1:
2001-12-31
输出样例 1:
2002.01.02
输入样例 2:
2008-2-28
输出样例 2:
2008.03.01
供参考:
#include <stdio.h>
int IsLeapYear(int y)
{
return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
}
int DaysOfMonth(int y, int m)
{
int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if (IsLeapYear(y) && m == 2) return a[m - 1] + 1;
return a[m - 1];
}
void Show(int year,int month,int day)
{
printf("%4d.%02d.%02d\n", year, month, day);//年.月.日 格式
}
void IncTwoDay(int *year,int *month,int *day)
{
if ((*day) == DaysOfMonth(*year, *month) ||
(*day) == DaysOfMonth(*year, *month) - 1)
{
if ((*day) == DaysOfMonth(*year, *month)) (*day) = 2;
if ((*day) == DaysOfMonth(*year, *month) - 1)(*day) = 1;
if ((*month) == 12) {
(*month) = 1;
(*year)++;
}
else
(*month)++;
}
else
(*day)+=2;
}
int main()
{
int y, m, d;
//printf("input\n");
scanf("%d-%d-%d", &y, &m, &d);
IncTwoDay(&y, &m, &d);
//printf("output\n");
Show(y, m, d);
return 0;
}