#include "stdafx.h"
#include "windows.h"
typedef struct tagmydate
mydate;
//用於表示兩個時間之間的差值,負值表示慢,正值表示快
typedef struct tagtimedistance
timedistance;
int month_days = ;
//傳回陽曆 y年某m月的天數
int solardays(uint y,uint m)
else
}//date與公元 0年相差的天數
long ldaysfront(mydate date)
}return days;
}//傳回從公元 0年算起經過 days 天後的陽曆日期
mydate getdatefront ( long days )
i-- ;
date.year = i ;
isleapyear = (i%4==0 && i%100!=0)||i%400==0 ;
days += isleapyear ? 366 : 365 ; //當年已過的天數
//月for ( i = 1; days>0 && i<=12; i++ )
//if ( i > 12 )
//i-- ;
date.month = i ;
date.day = days + solardays (date.year, i) ;
return date ;
}//兩個系統時間相減,返回兩時間的差值
timedistance subtime ( systemtime minu, systemtime sub )
//時間與相對該時間的偏移值相加,即差值,返回與 st相對偏差為 td的時間
systemtime addtime ( systemtime st, timedistance td )
else if ( lseconds >= 24 * 60 * 60l )
date = getdatefront (ldays) ;
st.wyear = date.year ;
st.wmonth = date.month ;
st.wday = date.day ;
st.whour = lseconds / (60 * 60) ;
lseconds %= ( 60 * 60 ) ;
st.wminute = lseconds / 60 ;
st.wsecond = lseconds % 60 ;
st.wdayofweek = 1 ;
st.wmilliseconds = 0 ;
return st ;
//test
void main ()
;long days ;
days = ldaysfront (date) ;
getchar() ;
}
時間加減法
1.相關資料結構 首先看time.h檔案中隊time t的定義 可以看出time t實際上是乙個整數,它記錄了儲存的是從1970年1月1日0時0分0 秒到現在經過的秒數。這裡有一點要注意,對time t資料型別的值來說,它所表示的時間不能晚於2038年1月18日19時14分07秒,否則會發生溢位。為...
好用的時間加減法
哇塞,找到乙個超級好用的關於時間的加減演算法等。大部分的時間加減是這樣寫的 date date newdate calendar cal calendar.getinstance cal.settime date 設定開始時間 cal.add calendar.year 增加一年的時間 date e...
常用的時間加減法
常用的時間加減法 echo 今天 date y m d strtotime 18 june 2008 echo 昨天 date y m d strtotime 1 day echo 明天 date y m d strtotime 1 day echo 一周後 date y m d strtotime...