|
发表于 2021-3-21 11:28:33
|
显示全部楼层
本帖最后由 jackz007 于 2021-3-21 11:33 编辑
- #include <stdio.h>
- #include <time.h>
- // 获取今天的日期
- void today(int * year , int * month , int * day)
- {
- time_t T ;
- struct tm * TM ;
- time(& T) ;
- TM = localtime(& T) ;
- * year = TM -> tm_year + 1900 ;
- * month = TM -> tm_mon + 1 ;
- * day = TM -> tm_mday ;
- }
- // 获取从 1900-01-01 起,到指定日期所经历的天数
- int ds(int year , int month , int day)
- {
- int md[12] = {31 , 28 , 31 , 30 , 31 , 30 , 31 ,31 ,30 , 31 , 30 , 31} ;
- int d , i ;
- for(d = 0 , i = 1900 ; i < year ; i ++) d += (! (i % 4) && (i % 100) || ! (i % 400)) ? 366 : 365 ;
- if(! (year % 4) && (year % 100) || ! (year % 400)) md[1] ++ ;
- for(i = 1 ; i < month ; i ++) d += md[i - 1] ;
- d += day ;
- return d ;
- }
- int main()
- {
- int year[2] , month[2] , day[2] , days , d , i , j , k ;
- printf("你的出生日期(如 1988-05-20):") ;
- scanf("%d-%d-%d" , & year[0] , & month[0] , & day[0]) ;
- today(& year[1] , & month[1] , & day[1]) ;
- printf("今天是你生命中的第 %d 天\n" , ds(year[1] , month[1] , day[1]) - ds(year[0] , month[0] , day[0]) + 1) ;
- }
复制代码
编译、运行实况
- D:\00.Excise\C>g++ -o d d.c
- D:\00.Excise\C>d
- 你的出生日期(如 1988-05-20):1988-05-20
- 今天是你生命中的第 11994 天
- D:\00.Excise\C>
复制代码 |
|