純現在の週があります

最近のプロジェクトは、現在の週は、今年の最初の数週間で得ることが困難に聞こえる何かが、非常に興味深いが必要です。

中国では、月曜日からの週は外国で、日曜日終了し、カウントし始めたが、そうではありません土曜日から日曜日まで一週間だったです。

、ここでは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(Da​​teTime型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)。
      } 
      戻り値の結果; 
  }

 

おすすめ

転載: www.cnblogs.com/bobo-pcb/p/11541800.html