好像有点问题 If DateDiff("ww", "2009-09-22", "2009-09-27") = 0 Then MsgBox "a" Else MsgBox "b" End If 这个是在同一周,但是显示的不在同一周,这个好像是以星期天作为第1天
datediff("ww", d1, d2, vbMonday)
看日期相减是否与分别求出两个日期的weekday相减得到的差值相等
if abs(datatime1-datatime2)>7 then msgbox("两天差超过一周")
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
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假设两个日期年份相同,如果跨年份就麻烦了一点
3楼误解 datediff("d", d1, d2, vbMonday)
貌似这样也错了
Function DateDiff(Interval As String, Date1, Date2, [FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1]) VBA.DateTime 的成员 返回两个指定日期之间的时间间隔只是求出时间间隔,没达到楼主要求判断是不是在同一个星期,你们可以用9-23和9-28号试下 就可以得出答案 是错误的
date1 = "2009-09-22" date2 = "2009-09-28" 'vbSunday 1 星期日 星期天为一周开始 'vbMonday 2 星期一 星期一为一周开始 'ww 周 两日期间的“日历周”数If DateDiff("ww", date1, date2, vbSunday) = 0 Then MsgBox "这两个日期在同一周" End If
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
If DateDiff("ww", "2009-09-22", "2009-09-27") = 0 Then
MsgBox "a"
Else
MsgBox "b"
End If
这个是在同一周,但是显示的不在同一周,这个好像是以星期天作为第1天
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
If DatePart("ww", "2009-09-22", vbMonday) = DatePart("ww", "2009-09-21", vbMonday) Then
MsgBox "同一周"
Else
MsgBox "不是同一周"
End If
End Sub假设两个日期年份相同,如果跨年份就麻烦了一点
datediff("d", d1, d2, vbMonday)
Function DateDiff(Interval As String, Date1, Date2, [FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1])
VBA.DateTime 的成员
返回两个指定日期之间的时间间隔只是求出时间间隔,没达到楼主要求判断是不是在同一个星期,你们可以用9-23和9-28号试下 就可以得出答案 是错误的
date2 = "2009-09-28"
'vbSunday 1 星期日 星期天为一周开始
'vbMonday 2 星期一 星期一为一周开始
'ww 周 两日期间的“日历周”数If DateDiff("ww", date1, date2, vbSunday) = 0 Then
MsgBox "这两个日期在同一周"
End If
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