DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
string day = dt.DayOfWeek.ToString();
day = day.Substring(0, 1).ToUpper();
MessageBox.Show(day); // result is "F"
たとえば、フランスなどのローカル言語 (CultureInfo) で結果を取得するにはどうすればよいですか?
DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
string day = dt.DayOfWeek.ToString();
day = day.Substring(0, 1).ToUpper();
MessageBox.Show(day); // result is "F"
たとえば、フランスなどのローカル言語 (CultureInfo) で結果を取得するにはどうすればよいですか?
をすでに持っていると仮定するとCultureInfo
、次を使用できます。
string dayName = dateTime.ToString("dddd", culture);
次に、最初の文字を自分で取得する必要があります-そのためのカスタムの日付/時刻形式はありません。省略形の曜日名に使用できますddd
が、通常は 1 文字ではなく 3 文字です。
文化のリストについては、 を使用できますCultureInfo.GetCultures
。これはプラットフォームによって異なり、時間の経過とともに、さらには .NET のバージョンによっても異なる可能性があります。
余談ですが、このコードは理想的ではありません。
DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
年末の真夜中の直前にそれを呼び出した場合、「古い」年を取得できますが、月は 1 月になります。評価DateTime.Now
(またはDateTime.Today
) を 1 回行ってから、同じ値を 2 回使用する必要があります。
DateTime today = DateTime.Today;
DateTime startOfMonth = new DateTime(today.Year, today.Month, 1);
MSDN から直接: MSDN on DateTime with CultureInfo
DateTime dt = DateTime.Now;
// Sets the CurrentCulture property to U.S. English.
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
// Displays dt, formatted using the ShortDatePattern
// and the CurrentThread.CurrentCulture.
Console.WriteLine(dt.ToString("d"));
dt.ToString("dddd")
必要に応じて、その文字列を操作してみてください。カスタムの日付と時刻のフォーマット文字列を参照してください。
DateTime dateValue = new DateTime(2008, 6, 11);
Console.WriteLine(dateValue.ToString("ddd",
new CultureInfo("fr-FR")));