ASP日期格式資料加減計算方法
在ASP中為我們提供了專門的日期加減函數。
1.日期相加
DateAdd 函數
傳回已新增指定時間間隔的日期。
DateAdd(interval, number, date)
DateAdd 函數的語法有以下參數
(1)interval 必選項。字串表達式,表示要新增的時間間隔。有關數值,請參閱設定部分。
(2)number 必選項。數值表達式,表示要加的時間間隔的個數。數值表達式可以是正數(得到未來的日期)或負數(得到過去的日期)。
(3)date 必選項。 Variant 或要新增interval 的表示日期的文字。
說明
可用DateAdd 函數從日期中新增或減去指定時間間隔。例如可以使用DateAdd 從當天算起30 天以後的日期或從現在算起45 分鐘以後的時間。若要為date 新增以日為單位的時間間隔,可以使用一年的日數(y)、日(d)或一週的日數(w)。
DateAdd 函數不會傳回無效日期。如下範例將95 年1 月31 日加上一個月:
NewDate = DateAdd(m, 1, 31-Jan-95)
在這個範例中,DateAdd 返回95 年2 月28 日,而不是95 年2 月31 日。如果date 為96 年1 月31 日,則返回96 年2 月29 日,這是因為1996 是閏年。
如果計算的日期是在公元100 年之前,則會產生錯誤。
如果number 不是Long 型值,則在計算前會四捨五入為最接近的整數。
2.日期相減
DateDiff 函數
傳回兩個日期之間的時間間隔。
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
DateDiff 函數的語法有以下參數:
(1)interval 必選項。字串表達式,表示用於計算date1 和date2 之間的時間間隔。有關數值,請參閱設定部分。
(2)date1, date2 必選項。日期表達式。用於計算的兩個日期。
(3)Firstdayofweek 可選項。指定星期中第一天的常數。如果沒有指定,則預設為星期日。有關數值,請參閱設定部分。
(4)Firstweekofyear 可選項。指定一年中第一週的常數。如果沒有指定,則預設為1 月1 日所在的星期。有關數值,請參閱設定部分。
說明
DateDiff 函數用來判斷兩個日期之間存在的指定時間間隔的數目。例如可以使用DateDiff 計算兩個日期相差的天數,或當天到當年最後一天之間的星期數。
要計算date1 和date2 相差的天數,可以使用一年的日數(y)或日(d)。當interval 為一週的日數(w)時,DateDiff 傳回兩個日期之間的星期數。如果date1 是星期一,則DateDiff 計算到date2 之前星期一的數目。此結果包含date2 而不包含date1。如果interval 是周(ww),則DateDiff 函數傳回日曆表中兩個日期之間的星期數。函數計算date1 和date2 之間星期日的數目。如果date2 是星期日,DateDiff 將計算date2,但即使date1 是星期日,也不會計算date1。
如果date1 晚於date2,則DateDiff 函數傳回負數。
firstdayofweek 參數會對使用w和ww間隔符號的計算產生影響。
如果date1 或date2 是日期文字,則指定的年度會成為日期的固定部分。但如果date1 或date2 被納入引號( ) 且省略年份,則在程式碼中每次計算date1 或date2 表達式時,將插入目前年份。這樣就可以編寫適用於不同年份的程式碼。
在interval 為年(yyyy)時,比較12 月31 日和來年的1 月1 日,雖然實際上只相差一天,DateDiff 返回1 表示相差一個年份。