电子小时钟

#include <stdio.h>  //printf使用时所用头文件
#include <unistd.h> //是sleep的头文件

//定义一个名为month_pr的函数

//功能:判断哪年哪月有多少天

//参数:int year(年份)和 int month(月份)

//返回值:return 31(31天),return 30(30天)  

// return 29(闰年2月29天),return 28(平年2月28天)

int month_pr(int year, int month)   
{
    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
        return 31;
    } else if (month == 4 || month == 6 || month == 9 || month == 11) {
        return 30;
    } else if (month == 2) {
        if ((0 == year % 4 && year % 100 != 0) || 0 == year % 400) {
            return 29;
        } else {
            return 28;
        }
    }
}

//主函数

int main(int argc, const char* argv[])
{
    int year, month, day, hour, min, sec;
    year = 2020;   //设定年份
    month = 7;     //设定月份
    day = 30;       //设定第几天
    hour = 23;     //设定小时
    min = 59;      //设定分钟
    sec = 55;       //设定秒数

    //制造一个死循环让时间一直运转

    while (1) {       
        sec++;

        //当秒大于等于60,让分钟加1
        if (sec >= 60) {
            min++;
            sec = 0;

         //当分钟大于等于60,让分钟加1
            if (min >= 60) {
                hour++;
                min = 0;

         //当小时大于等于24,让天加1
                if (hour >= 24) {
                    day++;
                    hour = 0;

                //调用上面的month_pr()函数,判断天数是否加到本月的最后一天
                    if (day > month_pr(year, month)) {
                        month++;
                        day = 1;    //天数没有0

                        //当月份加到大于12时,年份加一
                        if(month>12){
                            year++;
                            month=1;  //月份没有0
                        }
                    }
                }
            }
        }
        sleep(1);    //用于计时(1秒)
        printf("%d-%02d-%02d %02d:%02d:%02d\r", year, month, day, hour, min, sec);
        fflush(stdout);    //刷新缓冲区
    }
    return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值