给定一个日期计算下两天日期

给定一个日期,格式为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;
}