Private Sub 提前一個星期()
Dim date2 As Date = DateTimePicker2.Text
Dim nian, yue, ri As Integer
ri = date2.Day
yue = date2.Month
nian = date2.Year
If ri > 7 Then
ri = ri - 7
Else
If yue - 1 = 2 Then
ri = ri + 28 - 7
yue = 2
Else
If yue = yue - 1 = 1 And yue = yue - 1 = 3 And yue = yue - 1 = 5 And yue = yue - 1 = 7 And yue = yue - 1 = 8 And yue = yue - 1 = 10 And yue = 1 Then
ri = ri + 31 - 7
If yue = 1 Then
yue = yue + 12 - 1
nian = nian - 1
Else
yue = yue - 1
End If
Else
ri = ri + 30 - 7
If yue = 1 Then
yue = yue + 12 - 1
nian = nian - 1
Else
yue = yue - 1
End If
End If
End If
End If
DateTimePicker1.Text = nian & -yue & -ri
End Sub
uj5u.com熱心網友回復:
小學生可以了,初中生就直接用公式了(轉到統一口徑就能套公式了,比如linux下的1970-01-01)uj5u.com熱心網友回復:
用公式的好處是:統一口徑,代碼一樣,唔需要考慮跨年,跨月,同時不需要考慮閏年,閏月。因為公式本身已經全考慮到了當然實際作業的工程師,連公式都不用套,因為微軟已經做好了,俺們直接用就行 adddays(-7) 或AddWeeks(-1)
https://docs.microsoft.com/en-us/dotnet/api/system.globalization.calendar.addweeks?redirectedfrom=MSDN&view=netframework-4.8#System_Globalization_Calendar_AddWeeks_System_DateTime_System_Int32_
uj5u.com熱心網友回復:
小學生請在監護人的陪同下使用csdnuj5u.com熱心網友回復:
謝謝,我會好好加油努力的uj5u.com熱心網友回復:
謝謝了,我會盡快成為一名初中生的
uj5u.com熱心網友回復:
雖說是小學生,有些也是要學和使用的,比如對大月份的判斷可以修改一下:如果月份小于8那么遇到奇數
如果月份大于7那么遇到偶數
我想小學數學已經學了歸納了的.
uj5u.com熱心網友回復:
同時發帖也要學會使用提供的代碼書寫工具,每次進步都是走向成功的基石。
Dim yue = 10
If (yue < 8 And yue Mod 2 = 1) Or (yue > 7 And yue Mod 2 = 0) Then
End If'這樣看起來是不是舒服多了?邏輯也很清楚
uj5u.com熱心網友回復:
沒有仔細看,這是要干什么,寫這么多。Dim date2 As Date = DateTimePicker2.Text
這個確定不需轉換型別嗎。 DateTimePicker2 你自己定義的類嗎
uj5u.com熱心網友回復:
奧, 1 3 5 7 8 10 12 31天永不差啊這是。uj5u.com熱心網友回復:
2月份的閏處理單獨列出來判斷處理即可,即判斷閏年時處理閏月。uj5u.com熱心網友回復:
怎么弄啊?我是初學者不咋會
uj5u.com熱心網友回復:
不是啊,這是一個時間框啊
uj5u.com熱心網友回復:
adddays() AddWeeks() 參考下,啊哈哈uj5u.com熱心網友回復:
Dim yue = 2, nian = 2020, yue2 = 28
If (yue < 8 And yue Mod 2 = 1) Or (yue > 7 And yue Mod 2 = 0) Then
End If
If yue = 2 Then
yue2 = IIf(((nian Mod 4 = 0 And nian Mod 100 > 1) Or (nian Mod 400 = 0)), 29, 28)
End If
uj5u.com熱心網友回復:
當然還可以這樣寫
If yue = 2 Then
yue2 = IIf(((nian Mod 4 = 0 And nian Mod 100 <> 0) Or nian Mod 400 = 0), 29, 28)
End If
'/*四年一閏,百年不閏,四百年再閏。*/
如果不習慣三目運算子可改為平常的判斷式
If yue = 2 Then
If ((nian Mod 4 = 0 And nian Mod 100 <> 0) Or nian Mod 400 = 0) Then yue2 = 29 Else yue2 = 28
End If
另外看你函式的標題為提前一星期,那么就要計算+7,那么就要寫一個日期+的處理函式
uj5u.com熱心網友回復:
謝謝,而且我想問一下大月和小月有什么漸變一些的方式嗎
uj5u.com熱心網友回復:
什么叫漸變,舉個例子說明一下,學習編程首先就要把所有概念弄清楚。uj5u.com熱心網友回復:
抱歉,打錯字了,簡便
uj5u.com熱心網友回復:
簡便例子就是統一口徑,歸約相同條件。如果真是小學生,只能說 米-厘米-毫米了,0.4厘米等于多宣告,等于多少毫米。 0.004米等于多少毫米
這種就是不管他怎么來,先歸一到厘米上。 0.004米=0.4厘米=4毫米
同樣這里都先歸一到一個數字上,比如linux下常用的時間戳,其實就是統一歸約到相對1970-01-01 0:0:0:0 的秒數
https://baike.baidu.com/item/%E6%97%B6%E9%97%B4%E6%88%B3/6439235?fr=aladdin
所以就是先轉換成相對1970-01-01的 秒數 減去 7天的秒數,然后再從1970-01-01+減后的秒數
重新算回來是有計算公式的,而且已經考慮過閏年這類玩意
uj5u.com熱心網友回復:
其實編程就是一種邏輯鍛煉,盡量自己寫方法去實作。日歷的月日期是固定的大月31小月30,除了2月要特殊處理。
所謂的簡便即是判斷大月則日期都是31否則30,2月份獨立處理。
要從資料中歸納出來,思路清晰了,撰寫就下筆有神。
uj5u.com熱心網友回復:
提供代碼的書寫工具在哪哇?
uj5u.com熱心網友回復:

uj5u.com熱心網友回復:
編的挺好的呀 嘿嘿uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
必須要配置一個日歷出來,標注哪些是節假日,否則,所謂的提前七天,碰到要跳過節假日的需求就啞火了。uj5u.com熱心網友回復:
其實編程就是一種邏輯鍛煉,盡量自己寫方法去實作。
日歷的月日期是固定的大月31小月30,除了2月要特殊處理。
所謂的簡便即是判斷大月則日期都是31否則30,2月份獨立處理。
要從資料中歸納出來,思路清晰了,撰寫就下筆有神。
我判斷一個月,從不記大小月,也不去特殊處理2月份,我都是日期+1,如果月份變更,就是月末,不變就是本月。
判斷季末、年末都是這樣。
一直在這樣使用,懶省事。
uj5u.com熱心網友回復:
人家談天你說地,你呼叫已有函式那也是別人寫好了的,和我說的豈可相提并論.
其實編程就是一種邏輯鍛煉,盡量自己寫方法去實作。
日歷的月日期是固定的大月31小月30,除了2月要特殊處理。
所謂的簡便即是判斷大月則日期都是31否則30,2月份獨立處理。
要從資料中歸納出來,思路清晰了,撰寫就下筆有神。
我判斷一個月,從不記大小月,也不去特殊處理2月份,我都是日期+1,如果月份變更,就是月末,不變就是本月。
判斷季末、年末都是這樣。
一直在這樣使用,懶省事。
uj5u.com熱心網友回復:
這是在告訴我們,我們該退休了嗎?新一代的接班人來了。uj5u.com熱心網友回復:
小小孩加油呀!前路漫漫,堅持下去不得了了。去探索編程的快樂吧!
uj5u.com熱心網友回復:
了解一下基礎演算法的由來是好的,但是這種無聊的問題整天整年整百年都在讓孩子們做就缺德了。我們不要最擅長磨滅興趣和探索精神才好。就像現在大學課程還在開basic一樣,臥槽。。。。。感覺和競賽坑了十幾倍幾十倍沒拿到成績的孩子一樣可恥,還有被感興趣也挺猥瑣的。。。。。。uj5u.com熱心網友回復:
了解一下基礎演算法的由來是好的,但是這種無聊的問題整天整年整百年都在讓孩子們做就缺德了。我們不要最擅長磨滅興趣和探索精神才好。就像現在大學課程還在開basic一樣,臥槽。。。。。感覺和競賽坑了十幾倍幾十倍沒拿到成績的孩子一樣可恥,還有被感興趣也挺猥瑣的。。。。。。
uj5u.com熱心網友回復:
論壇里我唯一能看得懂的代碼。小學生都不如
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/104713.html
標籤:VB.NET
上一篇:關于語音識別的問題。
下一篇:關于應用資料的分析提取
