如何判断两个日期是否在同一周呢?

解决方案 »

  1.   

    if datediff("ww", d1, d2) = 0 thenend if
      

  2.   

    好像有点问题
    If DateDiff("ww", "2009-09-22", "2009-09-27") = 0 Then
       MsgBox "a"
    Else
       MsgBox "b"
    End If
    这个是在同一周,但是显示的不在同一周,这个好像是以星期天作为第1天
      

  3.   

    datediff("ww", d1, d2, vbMonday)
      

  4.   

    看日期相减是否与分别求出两个日期的weekday相减得到的差值相等
      

  5.   

    if abs(datatime1-datatime2)>7 then msgbox("两天差超过一周")
      

  6.   

    3楼的也许达到楼主要求了,来个折腾点的
    Private Sub Command1_Click()
        Dim blnYN As Boolean
        Dim date1 As Date, date2 As Date
        date1 = "2009-09-22"
        date2 = "2009-09-27"
        If DateDiff("d", date1, date2, vbMonday) < 7 Then
            If date1 = date2 Then
                blnYN = True
            Else
                If date1 < date2 Then
                    blnYN = Weekday(date1, vbMonday) < Weekday(date2, vbMonday)
                Else
                    blnYN = (Weekday(date1, vbMonday) > Weekday(date2, vbMonday))
                End If
            End If
        End If
    End Sub
      

  7.   

    Private Sub Command1_Click()
        If DatePart("ww", "2009-09-22", vbMonday) = DatePart("ww", "2009-09-21", vbMonday) Then
            MsgBox "同一周"
        Else
            MsgBox "不是同一周"
        End If
    End Sub假设两个日期年份相同,如果跨年份就麻烦了一点
      

  8.   

    3楼误解
    datediff("d", d1, d2, vbMonday)
      

  9.   

    貌似这样也错了 
     
    Function DateDiff(Interval As String, Date1, Date2, [FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1])
        VBA.DateTime 的成员
        返回两个指定日期之间的时间间隔只是求出时间间隔,没达到楼主要求判断是不是在同一个星期,你们可以用9-23和9-28号试下  就可以得出答案  是错误的
      

  10.   

    date1 = "2009-09-22"
    date2 = "2009-09-28"
    'vbSunday 1 星期日 星期天为一周开始
    'vbMonday 2 星期一 星期一为一周开始
    'ww 周 两日期间的“日历周”数If DateDiff("ww", date1, date2, vbSunday) = 0 Then
        MsgBox "这两个日期在同一周"
    End If
      

  11.   

    Private Sub Form_Load()
    Dim k As Integer
    k = Abs(DatePart("ww", "2009-04-18") - DatePart("ww", "2009-09-26"))
    If k = 0 Then
    MsgBox "在同一周"
    Else
    MsgBox "不在同一周,相差" & k & "周"
    End If
    End Sub
      

  12.   

    也可以用MonthView的week属性判断