#include <stdio.h> #include <stdlib.h> void next_second(int *year, int *month, int *day, int *hour, int *min, int *second); int main() { int year, month, day, hour, min, second; printf("input year: "); scanf("%d", &year); printf("\n"); printf("input month: "); scanf("%d", &month); printf("\n"); printf("input day: "); scanf("%d", &day); printf("\n"); printf("input hour: "); scanf("%d", &hour); printf("\n"); printf("input min: "); scanf("%d", &min); printf("\n"); printf("input second: "); scanf("%d", &second); printf("\n"); next_second(&year, &month, &day, &hour, &min, &second); } void next_second(int *year, int *month, int *day, int *hour, int *min, int *second) { int leap = 0; if ((*year % 4 == 0 && *year % 100 != 0) || *year % 400 == 0) leap = 1; if ( *year < 1900 || *year > 2099 ) { printf("请输入在 1900 年与2099 年之间的年数!\n"); exit(1); } if( (*second < 0 || *second > 59) || (*min < 0 || *min > 59) || (*hour < 0 || *hour > 23) || (*day < 0 || *day > 31) || (*month < 0 || *month > 12)){ printf("输入时间错误!\n"); exit(1); } if( *month == 2 || *month == 4 || *month == 6 || *month == 9 || *month == 11) { if( *day > 30 ) { printf("对应月份没有 31 天!\n"); exit(1); } } if ( *month == 2 && *day > 28) { if (!leap ) { printf("非闰年2月最大天数为28天!\n"); exit(1); } } if (*second != 59) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, *month, *day, *hour, *min, *second+1); exit(0); } if (*min != 59) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, *month, *day, *hour, *min+1, 0); exit(0); } if (*hour != 23) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, *month, *day, *hour+1, 0, 0); exit(0); } if (*day < 28) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, *month, *day+1, 0, 0, 0); exit(0); } if (*day == 28 && *month == 2 && leap == 0) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, 3, 1, 0, 0, 0); exit(0); } if (*day == 29 && *month == 2) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, 3, 1, 0, 0, 0); exit(0); } if (*day == 31 && *month == 12) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year+1, 1, 1, 0, 0, 0); exit(0); } else if (*day == 31 && *month != 12) { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, *month+1, 1, 0, 0, 0); exit(0); } else { printf("下一秒时间为:%d年%d月%d日%d时%d分%d秒\n", *year, *month+1, 1, 0, 0, 0); exit(0); } } |
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |