這篇是程式筆記啦。
之前遇到這樣的需求時,是用比較笨的方法。而今天靈機一動,DateInterval 這個日期列舉清單其實是非常有用的
首先,使用 DayOfYear,取得指定日期是該年的第幾天,然後依下列程式碼敍述,一樣可以列舉區間中所有日期。但是,請注意,採這個方法,會有一問題,如果遇到的區間是有跨年度的,那就很搞笑了。但是還是有解,只是有一點點不太方便而已。
Dim strFinalOutput As String = String.Empty
Dim dtBegin As String = "2008/2/1"
Dim dtStop As String = "2008/7/3"
Dim iStart As Integer = CDate(dtBegin).DayOfYear
Dim iEnd As Integer = CDate(dtStop).DayOfYear
For iLooper As Integer = 0 To iEnd - iStart
Dim oRunDate As String = Format(DateAdd(DateInterval.Day, iLooper, CDate(dtBegin)), "yyyy/MM/dd")
strFinalOutput = oRunDate & vbCrLf
Console.Write(strFinalOutput)
Next iLooper
接著,使用 DateInterval.Day,以日為單位步進。並利用 DateDiff 來計算區間日差。耶,就是這個了,它是無視跨年度的,如下列程式碼敍述。若改變 DateInterval 的單位,則可以更換步進的單位值。整個的處理比上段的程式碼順多了。
Dim strFinalOutput As String = String.Empty
Dim dtBegin As String = "2008/2/1"
Dim dtStop As String = "2008/7/3"
Dim iDiff As Integer = DateDiff(DateInterval.Day, CDate(dtBegin), CDate(dtStop))
For iLooper As Integer = 0 To iDiff
Dim oRunDate As String = Format(DateAdd(DateInterval.Day, iLooper, CDate(dtBegin)), "yyyy/MM/dd")
strFinalOutput = oRunDate & vbCrLf
Console.Write(strFinalOutput)
Next iLooper
以上。
0 留言