c语言 输入一个时间(年、月、日、时、分、秒),判断时间是否合法,输出下一秒的时间

例如:输入2000-2-2923:59:59输出2000-3-10:0:0... 例如:输入2000-2-29 23:59:59
输出2000-3-1 0:0:0
展开
 我来答
朋友想念你
推荐于2020-12-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1916
采纳率:0%
帮助的人:1147万
展开全部

#include<stdio.h>

int year = 0;

int month = 0;

int day = 0;

int hour = 0;

int minute = 0;

int second = 0;


int main()

{

    void inputDate();           /*输入年-月-日 时:分:秒*/

    void nextSceond();          /*计算下一秒的时间*/

    int leapYear(int year);     /*判断是否为闰年*/

    int dayMonth(int month);    /*返回每个月份对应的天数*/

    inputDate();

   搜陵 leapYear(year);

    dayMonth(month);

    nextSceond();

    system("PAUSE");

    return 0;

}


/*函数inputDate()输入年-月-日 时:分:秒*/

void inputDate()

{

    int loop;

    for(loop = 0; loop < 3; loop++)

    {

        printf("请输入年-月-日 时:分:秒:");

        scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);

        if(month < 1 || month > 12)

        {

            printf("\t月份输入错误!\n");

            continue;

        }

        else if(day < 1 || day > dayMonth(month))

        {

            printf("\t日期输入错误!\n");

            continue;

        }

        else if(hour < 0 || hour > 23)

        {

       蔽羡     printf("\t小时输入错误!\n");

            continue;

        }

        else if(minute < 0 || minute > 59)

        {

            printf("\t分钟输入错误!\n");

            continue;

        }

        else if(second < 0 || second > 59)

        {

            printf("\t秒数输入错误!\n");

            continue;

        }

        else

        {

            break;

        }

    }

}



/*函数nextSecond()计算下一秒的时间*/

void nextSceond()

{

    if(59 == second)

    {

        minute += 1;

        second = 0;

        if(60 == minute)

        {

            hour += 1;

            minute = 0;

            if(24 == hour)

            {

                day += 1;

                hour = 0;

                if(day > dayMonth(month))

                {

                    month += 1;

                    day = 1;

   宏漏拍                 if(13 == month)

                    {

                        year += 1;

                        month = 1;

                    }

                }

            }

        }

    }

    else

    {

        second += 1;

    }

    printf("%d-%d-%d %d:%d:%d\n",year, month, day, hour, minute, second);

}



/*函数leapYear(int year)判断是否为闰年*/

int leapYear(int year)

{

    if(0 == (year % 4 && 0 != year % 100) || 0 == year % 400)

    {

        return 1;

    }

    else

    {

        return 0;

    }

}


/*函数名dayMonth(int month)返回每个月份对应的天数*/

int dayMonth(int month)

{

    switch(month)

    {

        case 1:

        case 3:

        case 5:

        case 7:

        case 8:

        case 10:

        case 12:

            return 31;

        case 2:

            if(0 == (year % 4 && 0 != year % 100) || 0 == year %400)

            {

                return 29;

            }

            else

            {

                return 28;

            }

        case 4:

        case 6:

        case 9:

        case 11:

            return 30;

    }

}

  • 请放心使用

  • 有问题的话请追问

  • 满意请及时采纳,谢谢

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式