本帖最后由 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>
|