Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click Dim date1 As Date = txtDate.Text Dim date0 = Year(date1) "/01/01" Dim wk = DateDiff("ww", date0, date1, Microsoft.VisualBasic.FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFullWeek) If (wk = 0) Then //判斷周數(shù)是否為0,為0則為去年最后一周 Dim date2 = Year(date1) - 1 Dim date3 = date2 "/12/31" Dim date4 = date2 "/01/01" wk = DateDiff("ww", date4, date3, Microsoft.VisualBasic.FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFullWeek) End If lblShow.Text = txtDate.Text "是" Year(date1) "第" wk "周!"End Sub
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、齊齊哈爾網(wǎng)絡(luò)推廣、小程序定制開發(fā)、齊齊哈爾網(wǎng)絡(luò)營銷、齊齊哈爾企業(yè)策劃、齊齊哈爾品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供齊齊哈爾建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
Public?Function?IsRunnian(ByVal?n?As?Integer)?As?Boolean
Dim?res?As?Boolean
res?=?False
If?n?Mod?400?=?0?Then
res?=?True
End?If
If?(n?Mod?100??0)?And?(n?Mod?4?=?0)?Then
res?=?True
End?If
IsRunnian?=?res
End?Function
Public?Function?Fc(ByVal?td?As?Date)?As?Byte
Dim?y?As?Integer
Dim?m?As?Integer
Dim?d?As?Integer
Dim?yc?As?Integer
Dim?mc?As?Integer
Dim?dc?As?Integer
y?=?Year(td)
m?=?Month(td)
d?=?Day(td)
dc?=?d
If?IsRunnian(y)?Then
mc?=?Val(Mid("512503514624",?m,?1))
Else
mc?=?Val(Mid("622503514624",?m,?1))
End?If
yc?=?((y?Mod?100)?\?4?+?(y?Mod?100))?Mod?7
Fc?=?(yc?+?mc?+?dc)?Mod?7
End?Function
非常簡單,沒有那么復(fù)雜吧?
If?Text1.Text?=?""?Then
MsgBox?"",?16,?""???'以下對話框的提示內(nèi)容自己填寫吧!
Exit?Sub
End?If
If?Text2.Text?=?""?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
If?Text3.Text?=?""?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
If?IsNumeric(Text1.Text)?=?False?Or?Val(Text1.Text)??9999?Or?Val(Text1.Text)??1000?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
If?IsNumeric(Text2.Text)?=?False?Or?Val(Text1.Text)??12?Or?Val(Text1.Text)??1?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
If?IsNumeric(Text3.Text)?=?False?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
If?Val(Text2.Text)?=?1?Or?Val(Text2.Text)?=?3?Or?Val(Text2.Text)?=?5?Or?Val(Text2.Text)?=?7?Or?Val(Text2.Text)?=?8?Or?Val(Text2.Text)?=?10?Or?Val(Text2.Text)?=?12?Then
If?Val(Text3.Text)??31?Or?Val(Text3.Text)??1?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
ElseIf?Val(Text2.Text)?=?4?Or?Val(Text2.Text)?=?6?Or?Val(Text2.Text)?=?9?Or?Val(Text2.Text)?=?11?Then
If?Val(Text3.Text)??30?Or?Val(Text3.Text)??1?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
ElseIf?Val(Text2.Text)?=?2?Then
If?Val(Text1.Text)?Mod?4?=?0?Then
If?Val(Text3.Text)??29?Or?Val(Text3.Text)??1?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
Else
If?Val(Text3.Text)??28?Or?Val(Text3.Text)??1?Then
MsgBox?"",?16,?""
Exit?Sub
End?If
End?If
End?If
Dim?year1?As?String,?month1?As?String,?day?As?String,?Weekday1?As?Integer,?Weekday2?As?String
year1?=?Text1.Text
month1?=?Text2.Text
day1?=?Text3.Text
Weekday1?=?Weekday(CDate(year1??"-"??month1??"-"??day1))
Select?Case?Weekday1
Case?0:?Weekday2?=?"星期六"
Case?1:?Weekday2?=?"星期日"
Case?2:?Weekday2?=?"星期一"
Case?3:?Weekday2?=?"星期二"
Case?4:?Weekday2?=?"星期三"
Case?5:?Weekday2?=?"星期四"
Case?6:?Weekday2?=?"星期五"
End?Select
分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計 其他編程語言
解析:
DateDiff 函數(shù)
返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數(shù)目。
語法
DateDiff(interval, date1, date2[, firstdayofweek[, firseekofyear]])
DateDiff 函數(shù)語法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達式,表示用來計算date1 和 date2 的時間差的時間間隔
Date1□date2 必要;Variant (Date)。計算中要用到的兩個日期。
Firstdayofweek 可選。指定一個星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。
firseekofyear 可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含 1 月 1 日的星期為第一周。
設(shè)置
interval 參數(shù)的設(shè)定值如下:
設(shè)置 描述
yyyy 年
q 季
m 月
y 一年的日數(shù)
d 日
w 一周的日數(shù)
ww 周
h 時
n 分鐘
s 秒
firstdayofweek 參數(shù)的設(shè)定值如下:
常數(shù) 值 描述
vbUseSystem 0 使用 NLS API 設(shè)置。
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
常數(shù) 值 描述
vbUseSystem 0 用 NLS API 設(shè)置。
vbFirstJan1 1 從包含 1 月 1 日的星期開始(缺省值)。
vbFirstFourDays 2 從第一個其大半個星期在新的一年的一周開始。
vbFirstFullWeek 3 從第一個無跨年度的星期開始。
說明
DateDiff 函數(shù)可用來決定兩個日期之間所指定的時間間隔數(shù)目。例如,可以使用 DateDiff 來計算兩個日期之間相隔幾日,或計算從今天起到年底還有多少個星期。
為了計算 date1 與 date2 相差的日數(shù),可以使用“一年的日數(shù)”(y) 或“日”(d)。當(dāng) interval 是“一周的日數(shù)”(w) 時,DateDiff 返回兩日期間的周數(shù)。如果 date1 是星期一,DateDiff 計算到 date2 為止的星期一的個數(shù)。這個數(shù)包含 date2 但不包含 date1。不過,如果 interval 是“周”(ww),則 DateDiff 函數(shù)返回兩日期間的“日歷周”數(shù)。由計算 date1 與 date2 之間星期日的個數(shù)而得。如果 date2 剛好是星期日,則 date2 也會被加進 DateDiff 的計數(shù)結(jié)果中;但不論 date1 是否為星期日,都不將它算進去。
如果 date1 比 date2 來得晚,則 DateDiff 函數(shù)的返回值為負數(shù)。
firstdayofweek 參數(shù)會影響使用時間間隔符號 “W” 或 “WW” 計算的結(jié)果。
如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。但是,如果 date1 或 date2 用雙引號 (" ") 括起來,且年份略而不提,則在每次計算表達式 date1 或 date2 時,當(dāng)前年份都會插入到代碼之中。這樣就可以書寫適用于不同年份的程序代碼。
在計算 12 月 31 日和來年的 1 月 1 日的年份差時,DateDiff 返回 1 表示相差一個年份,雖然實際上只相差一天而已。