最近のプロジェクトは、現在の週は、今年の最初の数週間で得ることが困難に聞こえる何かが、非常に興味深いが必要です。
中国では、月曜日からの週は外国で、日曜日終了し、カウントし始めたが、そうではありません土曜日から日曜日まで一週間だったです。
、ここでは2つです。この機能を実現する多くの方法があります。
まず、使用のCultureInfo
このように、唯一のライン上のCultureInfo内部のパラメータを変更する必要があり、米国はライン上で自分自身を交換するEN-US、その他の国です。
多くの場合、最後の週は、次の年の最初の週が、これはビジネス・プロセスによって要求された、カウントするために通常通り、毎年恒例の大晦日であることに留意すべきです。
パブリック 静的 INT GetWeekNumOfTheYear(日時日) { のCultureInfo myCI = 新規のCultureInfo(" ZH-CN " )。 カレンダーマイカル = myCI.Calendar。 CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule。 DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek。 int型 weekOfYear = myCal.GetWeekOfYear(日付、myCWR、myFirstDOW)。 返すweekOfYearを。 }
第二に、使用のGregorianCalendar
この位置は、異なる領域に配置されている現在の週得ることができる、唯一のあなたが使用することができ、ライン上のGregorianCalendarTypesを変更する必要がありGregorianCalendarTypes.Localized
公共の 静的な int型GetWeekNumOfTheYear1(DateTimeの日付) { // 指定した時間が一年の最初の週で取得し てGregorianCalendar GC = 新しい新しいてGregorianCalendar(GregorianCalendarTypes.USEnglish); int型 WeekOfYear = gc.GetWeekOfYear(DATE、CalendarWeekRule.FirstDay、DayOfWeek.Monday); リターンWeekOfYear; }
System.Globalization名前空間のどちらの方法でも、非常に使いやすいです。
次のように呼び出しは、ビジネスが必要なため、毎年恒例の大晦日は、カウントする必要性として、次の年の最初の週、先週でも、非常に簡単です。
パブリック 静的 文字列GetCurrentWeekNum(DateTime型DT) { 文字列結果= ストリング.Empty。 VaRの DT1 = GetWeekFirstDay(DT)。 VaRの DT2 = GetWeekLastDay(DT)。 // かどうか年交差する 場合(dt1.Year == dt2.Year) { 結果 = ストリング .Format(" {0} W {1} "、dt1.Year、GetWeekNumOfTheYear(DT)は(.ToString " 00 " )); } 他 { 結果 =ストリング .Format(" {0} 01 W " 、dt2.Year)。 } 戻り値の結果; }