DateAndTime.DateDiff 메서드

정의

Date 값 사이의 시간 간격 수를 지정한 값을 반환합니다.

오버로드

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

에서 Date2 를 빼 Date1 서 두 Date 값 사이의 시간 간격 수를 지정하는 긴 값을 제공합니다.

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

에서 Date2 를 빼 Date1 서 두 Date 값 사이의 시간 간격 수를 지정하는 긴 값을 제공합니다.

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Source:
DateAndTime.vb
Source:
DateAndTime.vb
Source:
DateAndTime.vb

에서 Date2 를 빼 Date1 서 두 Date 값 사이의 시간 간격 수를 지정하는 긴 값을 제공합니다.

public static long DateDiff (Microsoft.VisualBasic.DateInterval Interval, DateTime Date1, DateTime Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : Microsoft.VisualBasic.DateInterval * DateTime * DateTime * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long

매개 변수

Interval
DateInterval

필수 요소. Date1Date2 사이의 시간차 단위로 사용할 시간 간격을 나타내는 DateInterval 열거형 값 또는 문자열 식입니다.

Date1
DateTime

필수 요소. 계산에 사용할 첫째 날짜/시간 값입니다.

Date2
DateTime

필수 요소. 계산에 사용할 둘째 날짜/시간 값입니다.

DayOfWeek
FirstDayOfWeek

선택 사항입니다. 주의 첫째 요일을 지정하는 FirstDayOfWeek 열거형에서 선택한 값입니다. 지정되지 않은 경우 Sunday가 사용됩니다.

WeekOfYear
FirstWeekOfYear

선택 사항입니다. 연도의 첫째 주를 지정하는 FirstWeekOfYear 열거형에서 선택한 값입니다. 지정되지 않은 경우 Jan1가 사용됩니다.

반환

Date 값 사이의 시간 간격 수를 지정한 long 값입니다.

예외

Date1, Date2 또는 DayofWeek가 범위를 벗어났습니다.

Date1 또는 Date2가 잘못된 형식입니다.

예제

이 예제에서는 함수를 DateDiff 사용하여 지정된 날짜와 오늘 사이의 일 수를 표시합니다.

Dim date2Entered As String = InputBox("Enter a date")

Try
    Dim date2 As Date = Date.Parse(date2Entered)
    Dim date1 As Date = Now

    ' Determine the number of days between the two dates.
    Dim days As Long = DateDiff(DateInterval.Day, date1, date2)

    ' This statement has a string interval argument, and
    ' is equivalent to the above statement.
    'Dim days As Long = DateDiff("d", date1, date2)

    MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
    MessageBox.Show("Invalid Date: " & ex.Message)
End Try

설명

함수를 DateDiff 사용하여 두 날짜/시간 값 사이에 존재하는 지정된 시간 간격 수를 확인할 수 있습니다. 예를 들어 를 사용하여 DateDiff 두 날짜 사이의 일 수 또는 오늘과 연말 사이의 주 수를 계산할 수 있습니다.

동작

  • 매개 변수 처리 DateDiff 값을 의 값 Date1Date2 에서 빼서 차이를 생성합니다. 호출 프로그램에서는 두 값이 모두 변경되지 않습니다.

  • 값을 반환합니다. Date1Date2 는 데이터 형식이므로 시스템 타이머에서 Date 100나노초 틱에 정확한 날짜 및 시간 값을 보유합니다. 그러나 DateDiff 는 항상 시간 간격 수를 값으로 Long 반환합니다.

    가 보다 Date2DateDiff 이후 날짜 및 시간을 나타내는 경우 Date1 음수를 반환합니다.

  • 일 간격. 가 로 설정된 경우 Interval 는 시간 간격에 대한 의미 있는 단위가 아니므로 DayOfYear 과 동일하게 DateInterval.Day처리DateInterval.DayOfYear됩니다.

  • 주 간격. 가 로 DateInterval.WeekOfYear설정된 경우 Interval 반환 값은 를 포함하는 요일의 첫째 날과 를 포함하는 Date1Date2요일 사이의 주 수를 나타냅니다. 다음 예제에서는 에서 다른 결과를 DateInterval.Weekday생성하는 방법을 보여 줍니다.

    ' The following statements set datTim1 to a Thursday
    ' and datTim2 to the following Tuesday.
    Dim datTim1 As Date = #1/4/2001#
    Dim datTim2 As Date = #1/9/2001#
    ' 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 에서 은 0을 wD 반환합니다. 두 날짜 간의 차이는 7일 미만이지만 각 달력 주의 첫 번째 날짜 사이에는 7일의 차이가 있기 때문에 1 wY 을 반환합니다.

  • 간격이 더 큽니다. 가 로 설정된 경우 Interval 반환 값은 및 Date2Date1 연도 부분에서만 계산DateInterval.Year됩니다. 마찬가지로 의 반환 값 DateInterval.Month 은 인수의 연도 및 월 부분과 DateInterval.Quarter 두 날짜가 포함된 분기에서만 계산됩니다.

    예를 들어 다음 해의 12월 31일과 다음 해 DateDiff 1월 1일을 비교할 때 는 최대 하루만 경과하더라도 , DateInterval.Quarter또는 DateInterval.Month에 대해 1DateInterval.Year을 반환합니다.

    여러 시대가 있는 일본어와 같은 문화권의 DateDiff 경우 차이가 두 개 이상의 시대에 걸쳐 있는 경우 메서드는 연도의 차이를 반환하지 않습니다. 대신 다음 예제date2.Year - date1.Year와 같이 속성에서 반환되는 값의 Year 차이를 계산할 수 있습니다.

  • 기타 간격. 모든 Date 값은 구조체에서 DateTime 지원되므로 해당 메서드는 시간 간격을 찾는 추가 옵션을 제공합니다. 예를 들어 오버로드된 형식 중 하나에서 메서드를 사용할 Subtract 수 있습니다. 변수에서 DateTimeSpan 빼서 다른 Date 값을 반환하고 DateTime.Subtract 값을 빼서 를 반환TimeSpan합니다Date. DateTime.Subtract 다음 예제와 같이 프로세스에서 소요되는 시간(밀리초)을 확인할 수 있습니다.

    Dim startTime As Date = Now
    ' Run the process that is to be timed.
    Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime)
    Dim millisecs As Double = runLength.TotalMilliseconds
    

인수에는 Interval 다음 설정 중 하나가 있을 수 있습니다.

열거형 값 문자열 값 시간 차이 단위
DateInterval.Day "d"
DateInterval.DayOfYear "y"
DateInterval.Hour "h" 시간
DateInterval.Minute "n" Minute
DateInterval.Month "m"
DateInterval.Quarter "q" Quarter
DateInterval.Second "s" Second
DateInterval.Weekday "w"
DateInterval.WeekOfYear "ww" 달력 주
DateInterval.Year "yyyy" Year

인수에는 DayOfWeek 다음 설정 중 하나가 있을 수 있습니다.

열거형 값 Description
FirstDayOfWeek.System 0 시스템 설정에 지정된 요일
FirstDayOfWeek.Sunday 1 일요일(기본값)
FirstDayOfWeek.Monday 2 월요일(ISO 표준 8601, 섹션 3.17 준수)
FirstDayOfWeek.Tuesday 3 화요일
FirstDayOfWeek.Wednesday 4 수요일
FirstDayOfWeek.Thursday 5 목요일
FirstDayOfWeek.Friday 6 금요일
FirstDayOfWeek.Saturday 7 토요일

인수에는 WeekOfYear 다음 설정 중 하나가 있을 수 있습니다.

열거형 값 Description
FirstWeekOfYear.System 0 시스템 설정에 지정된 연도의 첫 번째 주
FirstWeekOfYear.Jan1 1 1월 1일이 발생하는 주(기본값)
FirstWeekOfYear.FirstFourDays 2 새해에 최소 4일이 있는 주(ISO 표준 8601, 섹션 3.17 준수)
FirstWeekOfYear.FirstFullWeek 3 새해 첫 번째 전체 주

추가 정보

적용 대상

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Source:
DateAndTime.vb
Source:
DateAndTime.vb
Source:
DateAndTime.vb

에서 Date2 를 빼 Date1 서 두 Date 값 사이의 시간 간격 수를 지정하는 긴 값을 제공합니다.

public static long DateDiff (string Interval, object? Date1, object? Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
public static long DateDiff (string Interval, object Date1, object Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : string * obj * obj * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As String, Date1 As Object, Date2 As Object, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long

매개 변수

Interval
String

필수 요소. Date1Date2 사이의 시간차 단위로 사용할 시간 간격을 나타내는 DateInterval 열거형 값 또는 문자열 식입니다.

Date1
Object

필수 요소. 계산에 사용할 첫째 날짜/시간 값입니다.

Date2
Object

필수 요소. 계산에 사용할 둘째 날짜/시간 값입니다.

DayOfWeek
FirstDayOfWeek

선택 사항입니다. 주의 첫째 요일을 지정하는 FirstDayOfWeek 열거형에서 선택한 값입니다. 지정되지 않은 경우 Sunday가 사용됩니다.

WeekOfYear
FirstWeekOfYear

선택 사항입니다. 연도의 첫째 주를 지정하는 FirstWeekOfYear 열거형에서 선택한 값입니다. 지정되지 않은 경우 Jan1가 사용됩니다.

반환

Date 값 사이의 시간 간격 수를 지정한 long 값입니다.

예외

Date1, Date2 또는 DayofWeek가 범위를 벗어났습니다.

Date1 또는 Date2가 잘못된 형식입니다.

예제

이 예제에서는 함수를 DateDiff 사용하여 지정된 날짜와 오늘 사이의 일 수를 표시합니다.

Dim date2Entered As String = InputBox("Enter a date")

Try
    Dim date2 As Date = Date.Parse(date2Entered)
    Dim date1 As Date = Now

    ' Determine the number of days between the two dates.
    Dim days As Long = DateDiff(DateInterval.Day, date1, date2)

    ' This statement has a string interval argument, and
    ' is equivalent to the above statement.
    'Dim days As Long = DateDiff("d", date1, date2)

    MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
    MessageBox.Show("Invalid Date: " & ex.Message)
End Try

설명

함수를 DateDiff 사용하여 두 날짜/시간 값 사이에 존재하는 지정된 시간 간격 수를 확인할 수 있습니다. 예를 들어 를 사용하여 DateDiff 두 날짜 사이의 일 수 또는 오늘과 연말 사이의 주 수를 계산할 수 있습니다.

동작

  • 매개 변수 처리 DateDiff 값을 의 값 Date1Date2 에서 빼서 차이를 생성합니다. 호출 프로그램에서는 두 값이 모두 변경되지 않습니다.

  • 값을 반환합니다. Date1Date2 는 데이터 형식이므로 시스템 타이머에서 Date 100나노초 틱에 정확한 날짜 및 시간 값을 보유합니다. 그러나 DateDiff 는 항상 시간 간격 수를 값으로 Long 반환합니다.

    가 보다 Date2DateDiff 이후 날짜 및 시간을 나타내는 경우 Date1 음수를 반환합니다.

  • 일 간격. 가 로 설정된 경우 Interval 는 시간 간격에 대한 의미 있는 단위가 아니므로 DayOfYear 과 동일하게 DateInterval.Day처리DateInterval.DayOfYear됩니다.

  • 주 간격. 가 로 DateInterval.WeekOfYear설정된 경우 Interval 반환 값은 를 포함하는 요일의 첫째 날과 를 포함하는 Date1Date2요일 사이의 주 수를 나타냅니다. 다음 예제에서는 에서 다른 결과를 DateInterval.Weekday생성하는 방법을 보여 줍니다.

    ' The following statements set datTim1 to a Thursday
    ' and datTim2 to the following Tuesday.
    Dim datTim1 As Date = #1/4/2001#
    Dim datTim2 As Date = #1/9/2001#
    ' 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 에서 은 0을 wD 반환합니다. 두 날짜 간의 차이는 7일 미만이지만 각 달력 주의 첫 번째 날짜 사이에는 7일의 차이가 있기 때문에 1 wY 을 반환합니다.

  • 간격이 더 큽니다. 가 로 설정된 경우 Interval 반환 값은 및 Date2Date1 연도 부분에서만 계산DateInterval.Year됩니다. 마찬가지로 의 반환 값 DateInterval.Month 은 인수의 연도 및 월 부분과 DateInterval.Quarter 두 날짜가 포함된 분기에서만 계산됩니다.

    예를 들어 다음 해의 12월 31일과 다음 해 DateDiff 1월 1일을 비교할 때 는 최대 하루만 경과하더라도 , DateInterval.Quarter또는 DateInterval.Month에 대해 1DateInterval.Year을 반환합니다.

    여러 시대가 있는 일본어와 같은 문화권의 DateDiff 경우 차이가 두 개 이상의 시대에 걸쳐 있는 경우 메서드는 연도의 차이를 반환하지 않습니다. 대신 다음 예제date2.Year - date1.Year와 같이 속성에서 반환되는 값의 Year 차이를 계산할 수 있습니다.

  • 기타 간격. 모든 Date 값은 구조체에서 DateTime 지원되므로 해당 메서드는 시간 간격을 찾는 추가 옵션을 제공합니다. 예를 들어 오버로드된 형식 중 하나에서 메서드를 사용할 Subtract 수 있습니다. 변수에서 DateTimeSpan 빼서 다른 Date 값을 반환하고 DateTime.Subtract 값을 빼서 를 반환TimeSpan합니다Date. DateTime.Subtract 다음 예제와 같이 프로세스에서 소요되는 시간(밀리초)을 확인할 수 있습니다.

    Dim startTime As Date = Now
    ' Run the process that is to be timed.
    Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime)
    Dim millisecs As Double = runLength.TotalMilliseconds
    

인수에는 Interval 다음 설정 중 하나가 있을 수 있습니다.

열거형 값 문자열 값 시간 차이 단위
DateInterval.Day "d"
DateInterval.DayOfYear "y"
DateInterval.Hour "h" 시간
DateInterval.Minute "n" Minute
DateInterval.Month "m"
DateInterval.Quarter "q" Quarter
DateInterval.Second "s" Second
DateInterval.Weekday "w"
DateInterval.WeekOfYear "ww" 달력 주
DateInterval.Year "yyyy" Year

인수에는 DayOfWeek 다음 설정 중 하나가 있을 수 있습니다.

열거형 값 Description
FirstDayOfWeek.System 0 시스템 설정에 지정된 요일
FirstDayOfWeek.Sunday 1 일요일(기본값)
FirstDayOfWeek.Monday 2 월요일(ISO 표준 8601, 섹션 3.17 준수)
FirstDayOfWeek.Tuesday 3 화요일
FirstDayOfWeek.Wednesday 4 수요일
FirstDayOfWeek.Thursday 5 목요일
FirstDayOfWeek.Friday 6 금요일
FirstDayOfWeek.Saturday 7 토요일

인수에는 WeekOfYear 다음 설정 중 하나가 있을 수 있습니다.

열거형 값 Description
FirstWeekOfYear.System 0 시스템 설정에 지정된 연도의 첫 번째 주
FirstWeekOfYear.Jan1 1 1월 1일이 발생하는 주(기본값)
FirstWeekOfYear.FirstFourDays 2 새해에 최소 4일이 있는 주(ISO 표준 8601, 섹션 3.17 준수)
FirstWeekOfYear.FirstFullWeek 3 새해 첫 번째 전체 주

추가 정보

적용 대상