偏执性精神障碍症状:DateDiff 函数

来源:百度文库 编辑:偶看新闻 时间:2024/04/24 04:59:04

DateDiff 函数

返回一个 Long值,该值指定两个 Date值之间的时间间隔数。

Public Overloads Function DateDiff( _ ByVal Interval As DateInterval, _ ByVal Date1 As DateTime, _ ByVal Date2 As DateTime, _ Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _ Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _) As Long 

- 或 -

Public Overloads Function DateDiff( _ ByVal Interval As String, _ ByVal Date1 As Object, _ ByVal Date2 As Object, _ Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _ Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _) As Long 

参数

Interval
必选项。DateInterval枚举值或 String表达式,表示要用作 Date1Date2 之间差额单位的时间间隔。
Date1Date2
必选。数据类型为 Date。想用于计算的两个日期/时间值。差额为 Date2的值减去 Date1的值。调用程序中的两个值都未更改。
DayOfWeek
可选项。选自 FirstDayOfWeek枚举的值,该枚举用于指定周的第一天。若未指定,则使用 FirstDayOfWeek.Sunday
WeekOfYear
可选项。选自 FirstWeekOfYear枚举的值,该枚举用于指定年的第一周。若未指定,则使用 FirstWeekOfYear.Jan1

设置

Interval参数可以有以下设置。

枚举值字符串时间差额的单位DateInterval.Dayd日DateInterval.DayOfYeary日DateInterval.Hourh小时DateInterval.Minuten分钟DateInterval.Monthm月DateInterval.Quarterq季度DateInterval.Seconds秒钟DateInterval.Weekdayw周DateInterval.WeekOfYearww日历周DateInterval.Yearyyyy年

DayOfWeek参数可以有以下设置之一。

枚举值值说明FirstDayOfWeek.System0系统设置中指定的周的第一天FirstDayOfWeek.Sunday1星期日(默认)FirstDayOfWeek.Monday2星期一(依照 ISO 8601 标准第 3.17 节)FirstDayOfWeek.Tuesday3星期二FirstDayOfWeek.Wednesday4星期三FirstDayOfWeek.Thursday5星期四FirstDayOfWeek.Friday6星期五FirstDayOfWeek.Saturday7星期六

WeekOfYear参数可以有以下设置。

枚举值值说明FirstWeekOfYear.System0系统设置中指定的年的第一周FirstWeekOfYear.Jan111 月 1 日所在的周(默认)FirstWeekOfYear.FirstFourDays2至少有四天属于新年的周(依照 ISO 8601 标准第 3.17 节)FirstWeekOfYear.FirstFullWeek3新年的第一个全周

异常/错误

异常类型错误号条件ArgumentException5无效 IntervalArgumentException5DateDayofWeek超出范围。InvalidCastException13Date1Date2 为无效类型。

备注

可以使用 DateDiff函数来确定两个日期/时间值之间存在多少指定时间间隔。例如,可以使用 DateDiff来计算两个日期之间相隔几日,或计算从今天起到年底相隔几周。

DateInterval.DayOfYear 设置了 Interval,则对其的处理和 DateInterval.Day一样,因为 DayOfYear作为时间间隔单位是没有意义的。

Interval被设置为 DateInterval.WeekOfYear,则返回值表示包含 Date1 的周的第一天与包含 Date2 的周的第一天相隔的周数。以下的示例显示了这样所产生的结果与 DateInterval.Weekday所产生的结果的不同之处。

Dim DatTim1 As Date = #1/4/2001# ' This is a Thursday. Dim DatTim2 As Date = #1/9/2001# ' This is the next Tuesday. ' Assume Sunday is specified as first day of the week. Dim WD As Long = DateDiff(DateInterval.Weekday, DatTim1, DatTim2) Dim WY As Long = DateDiff(DateInterval.WeekOfYear, DatTim1, DatTim2) 

在上述示例中,DateDiff为 WD 返回 0,因为两日期之间的差额小于七天,而它为 WY 返回 1,因为两个日历周各自的第一天之间相差七天。

Interval被设置为 DateInterval.Year,则返回值只从 Date1Date2 的年份部分算起。

因为 Date1Date2的数据类型为 Date,所以它们所容纳系统计时器上日期和时间值精确到 100 毫微秒。可是,DateDiff总是将时间间隔数返回成 Long数据类型值。

Date1表示的日期和时间比 Date2 的晚,则 DateDiff返回负数。

如果有任何参数的值无效,就会发生 ArgumentException错误。若 Date1Date2参数的值无法转换为有效 Date值,则发生 InvalidCastException错误。

注意 将 12 月 31 日与来年的 1 月 1 日比较时,即便只过去一天,DateDiffDateInterval.YearDateInterval.QuarterDateInterval.Month都返回 1。

因为每个 Date值都由 DateTime结构支持,所以其方法在查找时间间隔中提供了附加选项。例如,可以在它两个重载窗体的任一个内使用 Subtract方法。一个窗体将 Date变量减去 TimeSpan后返回另一 Date值;另一个则减去 Date值后返回 TimeSpan。可以给过程计时,以确定它所花的毫秒数,如下所示:

Dim StartTime As Date = Now ' Starting date/time. ' Run the process that is to be timed. Dim RunLength As System.TimeSpan = Now.Subtract(StartTime) Dim Millisecs As Integer = RunLength.Milliseconds

示例

本示例使用 DateDiff函数显示给定日期和今天的间隔天数。

Dim FirstDate, Msg As String ' Declare variables. Dim SecondDate As Date FirstDate = InputBox("Enter a date") SecondDate = CDate(FirstDate) Msg = "Days from today: " & DateDiff(DateInterval.Day, Now, SecondDate) MsgBox (Msg)