| 
 | 
 
 
发表于 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>
 
  复制代码 |   
 
 
 
 |