Date 函數
返回當前系統日期。
Date
說明
下面的示例利用 Date 函數返回當前系統日期:
Dim MyDate MyDate = Date ' MyDate
包含當前系統日期。
Time 函數
返回 Date 子類型 Variant,指示當前系統時間。
Time
說明
下面的示例利用 Time 函數返回當前系統時間:
Dim MyTime MyTime = Time '
返回當前系統時間。
DateAdd 函數
返回已添加指定時間間隔的日期。
DateAdd(interval, number, date)
參數
interval
必選項。字符串表達式,表示要添加的時間間隔。有關數值,請參閱“設置”部分。
number
必選項。數值表達式,表示要添加的時間間隔的個數。數值表達式可以是正數(得到未來的日期)或負數(得到過去的日期)。
date
必選項。Variant 或要添加 interval 的表示日期的文字。
設置
interval 參數可以有以下值:
設置 | 描述 |
---|---|
yyyy | 年 |
q | 季度 |
m | 月 |
y | 一年的日數 |
d | 日 |
w | 一周的日數 |
ww | 周 |
h | 小時 |
n | 分鍾 |
s | 秒 |
說明
可用 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 型值,則在計算前四舍五入為最接近的整數。
DateDiff 函數
返回兩個日期之間的時間間隔。
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
DateDiff 函數的語法有以下參數:
參數
interval
必選項。String expression 表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱“設置”部分。
date1, date2
必選項。日期表達式。用於計算的兩個日期。
Firstdayofweek
可選項。指定星期中第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱“設置”部分。
Firstweekofyear
可選項。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱“設置”部分。
設置
interval 參數可以有以下值:
設置 | 描述 |
---|---|
yyyy | 年 |
q | 季度 |
n | 月 |
y | 一年的日數 |
d | 日 |
w | 一周的日數 |
ww | 周 |
h | 小時 |
m | 分鍾 |
s | 秒 |
firstdayofweek 參數可以有以下值:
常數 | 值 | 描述 |
---|---|---|
vbUseSystem | 0 | 使用區域語言支持 (NLS) API 設置。 |
vbSunday | 1 | 星期日(默認) |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
firstweekofyear 參數可以有以下值:
常數 | 值 | 描述 |
---|---|---|
vbUseSystem | 0 | 使用區域語言支持 (NLS) API 設置。 |
vbFirstJan1 | 1 | 由 1 月 1 日所在的星期開始(默認)。 |
vbFirstFourDays | 2 | 由在新年中至少有四天的第一周開始。 |
vbFirstFullWeek | 3 | 由在新的一年中第一個完整的周開始。 |
說明
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 表示相差一個年份。
下面的示例利用 DateDiff 函數顯示今天與給定日期之間間隔天數:
Function DiffADate(theDate) DiffADate = "
從當天開始的天數:" & DateDiff("d", Now, theDate)
End Function
DatePart 函數
返回給定日期的指定部分。
DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
Arguments
interval
必選項。字符串表達式表示要返回的時間間隔。有關數值,請參閱“設置”部分。
Date
必選項。要計算的日期表達式。
firstdayof week
可選項。指定星期中的第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱“設置”部分。
Firstweekofyear
可選項。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱“設置”部分。
設置
interval 參數可以有以下值:
設置 | 描述 |
---|---|
yyyy | 年 |
q | 季度 |
m | 月 |
y | 一年的日數 |
d | 日 |
w | 一周的日數 |
ww | 周 |
h | 小時 |
n | 分鍾 |
s | 秒 |
firstdayofweek 參數可以有以下值:
常數 | 值 | 描述 |
---|---|---|
vbUseSystem | 0 | 使用區域語言支持 (NLS) API 設置。 |
vbSunday | 1 | 星期日(默認) |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
firstweekofyear 參數可以有以下值:
常數 | 值 | 描述 |
---|---|---|
vbUseSystem | 0 | 使用區域語言支持 (NLS) API 設置。 |
vbFirstJan1 | 1 | 由 1 月 1 日所在的星期開始(默認)。 |
vbFirstFourDays | 2 | 由在新年中至少有四天的第一周開始。 |
vbFirstFullWeek | 3 | 由在新的一年中第一個完整的周(不跨年度)開始。 |
說明
DatePart 函數用於計算日期並返回指定的時間間隔。例如使用 DatePart 計算某一天是星期幾或當前的時間。
firstdayofweek 參數會影響使用“w”和“ww”間隔符號的計算。
如果 date 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date 被包含在引號 (" ") 中,並且省略年份,則在代碼中每次計算 date 表達式時,將插入當前年份。這樣就可以編寫適用於不同年份的程序代碼。.
下面的示例利用 DatePart 函數獲得日期並顯示該日所在的季節。
Function GetQuarter(TheDate) GetQuarter = DatePart("q", TheDate) End Function
DateSerial 函數
對於指定的年、月、日,返回 Date 子類型的 Variant。
DateSerial(year, month, day)
Arguments
Year
從 100 到 9999 之間的數字或數值表達式。
Month
任意數值表達式。
Day
任意數值表達式。
說明
要指定日期,如 1991 年 12 月 31 日,DateSerial 函數中每個參數的取值范圍都應該是可接受的;即日的取值應在 1 和 31 之間,月的取值應在 1 和 12 之間。但是,也可以使用表示某日之前或之后的年、月、日數目的數值表達式為每個參數指定相對日期。
以下樣例中使用了數值表達式代替絕對日期。在這里,DateSerial 函數返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零兩個月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。
Dim MyDate1, MyDate2 MyDate1 = DateSerial(1970, 1, 1)
' Returns January 1, 1970.
MyDate2 = DateSerial(1990 - 10, 8 - 2, 1 - 1)
' Returns May 31, 1980.
對於 year 參數,若取值范圍是從 0 到 99,則被解釋為 1900 到 1999 年。對於此范圍之外的 year 參數,則使用四位數字表示年份(例如 1800 年)。
當任何一個參數的取值超出可接受的范圍時,則會適當地進位到下一個較大的時間單位。例如,如果指定了 35 天,則這個天數被解釋成一個月加上多出來的日數,多出來的日數取決於其年份和月份。但是如果參數值超出 -32,768 到 32,767 的范圍,或者由三個參數指定(無論是直接還是通過表達式指定)的日期超出了可以接受的日期范圍,就會發生錯誤。
DateValue 函數
返回 Date 子類型的 Variant。
DateValue(date)
date 參數應是字符串表達式,表示從 100 年 1 月 1 日到 9999 年 12 月 31 日中的一個日期。但是,date 也可以是表示上述范圍內的日期、時間或日期時間混合的任意表達式。
說明
如果 date 參數包含時間信息,則 DateValue 不會返回時間信息。但是如果 date 包含無效的時間信息(如 "89:98"),就會出現錯誤。
如果 date 是某一字符串,其中僅包含由有效的日期分隔符分隔開的數字,則 DateValue 將會根據為系統指定的短日期格式識別月、日和年的順序。DateValue 還會識別包含月份名稱(無論是全名還是縮寫)的明確日期。例如,除了能夠識別 12/30/1991 和 12/30/91 之外,DateValue 還能識別 December 30, 1991 和 Dec 30, 1991。
如果省略了 date 的年份部分,DateValue 將使用計算機系統日期中的當前年份。
下面的示例利用 DateValue 函數將字符串轉化成日期。也可以利用日期文字直接將日期分配給 Variant 變量, 例如, MyDate = #9/11/63#.
Dim MyDate MyDate = DateValue("September 11, 1963") '
返回日期。
Day 函數
返回 1 到 31 之間的一個整數(包括 1 和31),代表某月中的一天。
date
參數是任意可以代表日期的表達式。如果 date
參數中包含 Null
,則返回 Null
。
下面例子利用 Day 函數得到一個給定日期月的天數:
Dim MyDay MyDay = Day("October 19, 1962") 'MyDay
包含19
。
Month 函數
返回 1 到 12 之間的一個整數(包括 1 和 12),代表一年中的某月。
Month(date)
date 參數是任意可以代表日期的表達式。如果 date 參數中包含 Null,則返回 Null。
說明
下面的示例利用 Month 函數返回當前月:
Dim MyVar MyVar = Month(Now) ' MyVar
包含當前月對應的數字。
MonthName 函數
返回表明指定月份的字符串。
MonthName(month[, abbreviate])
參數
month
必選項。月份的數值定義。例如,一月是 1,二月是 2,以此類推。
Abbreviate
可選項。Boolean 值,表明月份名稱是否簡寫。如果省略,默認值為 False,即不簡寫月份名稱。
說明
下面的示例利用MonthName 函數為日期表達式返回月份的縮寫:
Dim MyVar MyVar = MonthName(10, True) ' MyVar
包含"Oct"
。
MonthName 函數
返回表明指定月份的字符串。
MonthName(month[, abbreviate])
參數
month
必選項。月份的數值定義。例如,一月是 1,二月是 2,以此類推。
Abbreviate
可選項。Boolean 值,表明月份名稱是否簡寫。如果省略,默認值為 False,即不簡寫月份名稱。
說明
下面的示例利用MonthName 函數為日期表達式返回月份的縮寫:
Dim MyVar MyVar = MonthName(10, True) ' MyVar
包含"Oct"
。
Weekday 函數
返回代表一星期中某天的整數。
Weekday(date, [firstdayofweek])
參數
date
可以代表日期的任意表達式。如果 date 參數中包含 Null,則返回 Null。
Firstdayofweek
指定星期中第一天的常數。如果省略,默認使用 vbSunday。
設置
firstdayofweek 參數有如下設置:
常數 | 值 | 描述 |
---|---|---|
vbUseSystem | 0 | 使用區域語言支持 (NLS) API 設置。 |
vbSunday | 1 | 星期日 |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
返回值
Weekday 函數返回如下值:
常數 | 值 | 描述 |
---|---|---|
vbSunday | 1 | 星期日 |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
說明
下面例子利用 Weekday 函數得到指定日期為星期幾:
Dim MyDate, MyWeekDay MyDate = #October 19, 1962# '
分派日期。MyWeekDay = Weekday(MyDate) '
由於MyWeekDay
包含6,MyDate
代表星期五。
WeekDayName 函數
返回一個字符串,表示星期中指定的某一天。
WeekdayName(weekday, abbreviate, firstdayofweek)
參數
weekday
必選項。星期中某天的數值定義。各天的數值定義取決於 firstdayofweek 參數設置。
Abbreviate
可選項。Boolean 值,指明是否縮寫表示星期各天的名稱。如果省略, 默認值為 False,即不縮寫星期各天的名稱。
Firstdayofweek
可選項。指明星期第一天的數值。關於數值,請參閱“設置”部分。
設置
firstdayofweek 參數有以下值:
常數 | 值 | 描述 |
---|---|---|
vbUseSystem | 0 | 使用區域語言支持 (NLS) API 設置。 |
vbSunday | 1 | 星期日(默認) |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
說明
下面例子利用 WeekDayName 函數返回指定的某一天:
Dim MyDate MyDate = WeekDayName(6, True) 'MyDate
包含Fri
。
Year 函數
返回一個代表某年的整數。
Year(date)
date 參數是任意可以代表日期的參數。如果 date 參數中包含 Null,則返回 Null。
說明
下面例子利用 Year 函數得到指定日期的年份:
Dim MyDate, MyYear MyDate = #October 19, 1962# '
分派一日期。MyYear = Year(MyDate) ' MyYear
包含1962
。
Hour 函數
返回 0 到 23 之間的一個整數(包括 0 和 23),代表一天中的某一小時。
Hour(time)
time 參數是任意可以代表時間的表達式。如果 time 參數中包含 Null,則返回 Null。
下面的示例利用 Hour 函數得到當前時間的小時:
Dim MyTime, MyHour MyTime = Now MyHour = Hour(MyTime) ' MyHour
包含代表當前時間的數值。
Minute
返回 0 到 59 之間的一個整數(包括 0 和59),代表一小時內的某一分鍾。
Minute(time)
time 參數是任意可以代表時間的表達式。如果 time 參數包含 Null,則返回 Null。
說明
下面的示例利用 Minute 函數返回小時的分鍾數:
Dim MyVar MyVar = Minute(Now)
Second 函數
返回 0 到 59 之間的一個整數(包括 1 和 59),代表一分鍾內的某一秒。
Second(time)
time 參數是任意可以代表時間的表達式。如果 time 參數中包含 Null,則返回 Null。
說明
下面的示例利用 Second 函數返回當前秒:
Dim MySec MySec = Second(Now) 'MySec
包含代表當前秒的數字。
Now
根據計算機系統設定的日期和時間返回當前的日期和時間值。
Now
說明
下面的示例利用 Now 函數返回當前的日期和時間:
Dim MyVar MyVar = Now ' MyVar
包含當前的日期和時間。
TimeSerial 函數
返回一個 Date 子類型的 Variant,含有指定時、分、秒的時間。
TimeSerial(hour,minute, second)
參數
hour
其值為從 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的數值或數值表達式。
minute
任意數值表達式。
second
任意數值表達式。
說明
要指定一時刻,如 11:59:59,TimeSerial 的參數取值應在可接受的范圍內;也就是說,小時應介於 0-23 之間,分和秒應介於 0-59 之間。但是,可以使用數值表達式為每個參數指定相對時間,這一表達式代表某時刻之前或之后的時、分或秒數。
下面的示例使用絕對時間數的表達式。TimeSerial 函數返回中午前 6(12-6)小時前的 15分鍾 (-15), 或 5:45:00 A.M.
Dim MyTime1 MyTime1 = TimeSerial(12 - 6, -15, 0) '
返回5:45:00 AM.
當任何一個參數的取值超出可接受的范圍時,它會正確地進位到下一個較大的時間單位中。例如,如果指定了 75 分鍾,則這個時間被解釋成一小時十五分鍾。但是,如果任何一個參數值超出 -32768 到 32767 的范圍,就會導致錯誤。如果使用三個參數直接指定的時間或通過表達式計算出的時間超出可接受的日期范圍,也會導致錯誤。
TimeValue
返回包含時間的 Date 子類型的 Variant。
TimeValue(time)
time 參數通常是代表從 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表達式(包括 0:00:00 和 23:59:59)。不過,time 也可以是代表該范圍內任何時間的表達式。如果 time 參數包含 Null,則返回 Null。
說明
可以采用 12 或 24 小時時鍾格式輸入時間。例如 "2:24PM" 和 "14:24" 都是有效的 time 參數。如果 time 參數包含日期信息, TimeValue 函數並不返回日期信息。然而,如果 time 參數包含無效的日期信息,則會出現錯誤。
下面的示例利用 TimeValue 函數將字符串轉化為時間。也可以用 日期文字 直接賦時間給 Variant 類型的變量(例如, MyTime = #4:35:17 PM#).
Dim MyTime MyTime = TimeValue("4:35:17 PM") ' MyTime
包含"4:35:17 PM"
。