输入一个日期和时间,输出下一秒的日期和时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入一个日期和时间,输出下一秒的日期和时间相关的知识,希望对你有一定的参考价值。
1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <string> 4 #include <string.h> 5 #include <iostream> 6 #include <vector> 7 #include <stack> 8 using namespace std; 9 #define debug(x) cout << #x << " at line " << __LINE__ << " is: " << x << endl 10 11 int isleapyear(int y); 12 void ns(int y,int m,int d,int h,int mi,int s); 13 int main(void) { 14 freopen("../tmp.txt","r",stdin); 15 int y,m,d; 16 int h,mi,s; 17 while(scanf("%d%d%d%d%d%d", &y,&m,&d,&h,&mi,&s)!=EOF){ 18 ns(y,m,d,h,mi,s); 19 } 20 return 0; 21 } 22 int isleapyear(int y){ 23 if(y%4==0&&y%100!=0 || y%400==0) 24 return 1; 25 return 0; 26 } 27 28 void ns(int y,int m,int d,int h,int mi,int s){ 29 int mth[13]={0,31,28,31,30,31, 30,31,31,30,31, 30,31}; 30 if(isleapyear(y)){ 31 mth[2] += 1; 32 } 33 if(m<1 || m > 12 || d>mth[m] || d<1 || h<0 || h>23 || mi<0 || mi >59 || s<0 || s>59){ 34 printf("the data(%d-%d-%d %d:%d:%d) is illegal!\n",y,m,d,h,mi,s); 35 return; 36 } 37 if(s==59){ 38 s=0; 39 if(mi==59){ 40 mi=0; 41 if(h==23){ 42 h=0; 43 if(d==mth[m]){ 44 d=1; 45 if(m==12){ 46 m=1; 47 y+=1; 48 }else { 49 m+=1; 50 } 51 }else { 52 d+=1; 53 } 54 }else { 55 h+=1; 56 } 57 }else { 58 mi+=1; 59 } 60 61 }else {//s < 59 62 s+=1; 63 } 64 65 printf("%d-%d-%d %d:%d:%d\n",y,m,d,h,mi,s); 66 }
second += 1; if(second == 60) // 增加一秒之后,完成日期和时间的更新 { second = 0; minute += 1; if(minute == 60) { minute = 0; hour += 1; if(hour == 24) { hour = 0; day += 1; if(day > DayOfMonth[month-1]) { day = 1; month += 1; if(month == 13) { month = 1; year += 1; } } } } }
以上是关于输入一个日期和时间,输出下一秒的日期和时间的主要内容,如果未能解决你的问题,请参考以下文章
java 日期和字符串互转,依据当天整天时间 得到当天最后一秒的日期时间