System.Globalization.Calendar の GetWeekOfYear メソッドは、単にその日付が含まれる週の、年頭からの週番号を返すだけです。引数で指定された週ルールは使用されません。たとえば、週の最初の曜日が日曜日で、週ルールが1月1日の場合、2000年12月31日 (日) は1を返す必要があります。代わりに54を返し、2001年1月1日 (月) が1を返します。
このルーチンは、WeekRule と FirstDayOfWeekResolved に基づいて、指定された日付の正しい週番号を返します。
指定された日付の属する年とは異なる年の週番号が返される場合があります。 たとえば、週ルールが1月1日で、週の最初の曜日が日曜日の場合、2000年12月31日は1を返します。 これは、この日付が2001年の最初の週に当たるためです。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports System.IO Imports System.Globalization Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click Dim yearNumber As Integer Dim weekNumber As Integer weekNumber = Me.ultraCalendarInfo1.GetWeekNumberForDate(DateTime.Today, yearNumber) Dim info As String = "The number of the current week is " + weekNumber.ToString() + "." + vbCrLf info += "The week falls in the year " + yearNumber.ToString() + "." + vbCrLf ' 情報を表示します MessageBox.Show(info, "GetWeek", MessageBoxButtons.OK) End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinSchedule; using System.IO; using System.Globalization; private void button1_Click(object sender, System.EventArgs e) { int yearNumber; int weekNumber; weekNumber = this.ultraCalendarInfo1.GetWeekNumberForDate( DateTime.Today, out yearNumber ); string info = "The number of the current week is " + weekNumber.ToString() + "." + "\n"; info += "The week falls in the year " + yearNumber.ToString() + "." + "\n"; // 情報を表示します MessageBox.Show( info, "GetWeek", MessageBoxButtons.OK ); }