判断当前时间的下一秒是多少

来源:互联网 发布:想在淘宝直播 编辑:程序博客网 时间:2024/04/30 06:28


写的比较粗陋,编程能力还需要多多磨练啊

struct SDate{int Leapday[12]; //闰年的每月天数//int NoLeapDay[12]; //非闰年的每月天数int year;int month;int day;int hour; int minute;int second;} sDate = { 31,29,31,30,31,30,31,31,30,31,30,31 };bool isLeap(int year) //判断是否闰年{if (year%4==0 && year%100 || year%400==0)return true;else return false;}void getNextSecond(SDate *in, SDate &out) //获取当前秒的下一秒{if (!in) return;memcpy(&out, in, sizeof(SDate));if (in->second==59) {out.second=0;if (in->minute==59) {out.minute=0;if (in->hour==23) {out.hour=0;if (in->day==in->Leapday[in->month-1]) {out.day=1;if (in->month==12) {out.month=1;out.year+=1;}else out.month+=1;}else out.day+=1;}else out.hour += 1;}else out.minute +=1;}else out.second += 1;}bool fillData(SDate *in){if (in==NULL) return false;printf("请依次输入:年 月 日 时 分 秒");while (1){puts("年: ");scanf("%d", &in->year);if (in->year<=0) {puts("年必须大于0,请重新输入年份:");continue;}break;}while (1){printf("月: ");scanf("%d", &in->month);if (in->month<1 || in->month >12) {puts("月范围是<1-12>,请重新输入月份:");continue;}break;}bool leap;leap = isLeap(in->year);if (leap);else in->Leapday[1]=28; while (1){printf("日: ");scanf("%d", &in->day);if (in->day < 0 || in->day > in->Leapday[in->month-1]) {puts("日子大小不对,请重新输入日:");continue;}break;}while (1){puts("时: ");scanf("%d", &in->hour);if (in->hour <0 || in->hour > 24) {puts("小时数不对,请重新输入:");continue;}break;}while (1){printf("分: ");scanf("%d", &in->minute);if (in->hour <0 || in->minute > 60) {puts("分钟数不对,请重新输入:");continue;}break;}while (1){printf("秒: ");scanf("%d", &in->second);if (in->second <0 || in->second > 60) {puts("秒数不对,请重新输入:");continue;}break;}}void main(){SDate outDate;fillData(&sDate);getNextSecond(&sDate, outDate);printf("下一秒为:%d 年 %d 月 %d 日 %d 时 %d 分 %d 秒\n", \outDate.year, outDate.month, outDate.day, outDate.hour, outDate.minute, outDate.second);}


0 0
原创粉丝点击