C语言编写自定义时钟

该程序使用C语言编写,通过用户输入年月日时分开始计时,然后在控制台实时显示时间,考虑到闰年的计算,当时间到达下一刻时会自动更新日期和小时数。程序包含对不同月份天数的判断,并使用了sleep函数模拟时间流逝。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <unistd.h>

int main(int argc, char const *argv[])
{
    int year,mounth,day,hour,min,sec;
    printf("请依次输入年 月 日 时 分 开始计时 ");
    scanf("%d %d %d %d %d", &year, &mounth, &day, &hour,&min);
    while (1)
    {
        sec = 0;
        while (sec <= 60 )
        {
            switch (mounth)
            {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                if ( day == 32 )
                {
                    day = 1;
                    mounth++;
                }
                if(mounth == 13){
                    year++ ;
                    mounth = 1;
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                if ( day == 31 )
                {
                    day = 1;
                    mounth++;
                }
                break;
            case 2:
                 if((year % 400 == 0 )|| ((year % 4 ==0 && (year % 100 != 0))))
                     day++;
                     if(day == 29) {
                        day = 1;
                        mounth++;
                     }
                 else {
                    day++;
                     if(day == 30) {
                        day = 1;
                        mounth++;
                     }
                 }
                 break;
            default:
                printf("请输入正确月份 0~12月\n");
                return -1;
            }
            if(sec % 2)
                printf("     %d年%2d月%02d日 %02d :%02d : %02d\r",year,mounth,day,hour,min,sec);
            else
                printf("     %d年%2d月%02d日 %02d :%02d   %02d\r",year,mounth,day,hour,min,sec);
            fflush(stdout);
            sleep(1);
            sec++;
        }
        if(min++ == 59 ) {
            hour++;
            min = 0;
        }
        if(hour == 24){
            day++;
            hour =0;
        }
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值