PRINT DATEPART(week, '2012/12/18') --51と表示される
''日付から年内の第何週かを取得する
Public Function WeekOfYear(Byval pDateTime As DateTime) Integer
''日付から年間積算日を取得
Dim DayOfYear As Integer = DateTime.Now.DayOfYear '353がセットされる
Dim WeekNum As Integer = (DayOfYear / 7 ) + 1
''1年は52週なので52週をオーバーしたら1週目にする
''→53週でも問題ありません
''If WeekNum > 52 Then
'' WeekNum = 1
''End If
Return WeekNum
End Function
''使い方
''1.算出したい日付をセット
Dim DateNow As DateTime = DateTime.Parse("2012/12/18")
''2.関数で第何週かを取得
Console.WriteLine(WeekOfYear(DateNow).ToString())
''51と表示される
2012/12/20訂正
1/1になると、1週になるので、12/30・31が53週でも問題ありませんでした。
0 件のコメント:
コメントを投稿