時間加減法

2021-05-11 02:21:20 字數 1485 閱讀 2493

#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...