1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[備忘録] Enum DayOfWeek.ToString(string format)

Posted at

「結局そのFormatStringで何が出るんじゃい」っていう一覧がどこにもなかったので備忘録
VS2019なのでC#8.x系だと思います。

var formats = new string[] { string.Empty, "G", "X", "F", "D" };

foreach (var f in formats) 
{
    Console.WriteLine($"FormatString = {f}");
    Console.WriteLine($"Monday = {DayOfWeek.Monday.ToString(f)}");
    Console.WriteLine($"Tuesday = {DayOfWeek.Tuesday.ToString(f)}");
    Console.WriteLine($"Wednesday = {DayOfWeek.Wednesday.ToString(f)}");
    Console.WriteLine($"Thursday = {DayOfWeek.Thursday.ToString(f)}");
    Console.WriteLine($"Friday = {DayOfWeek.Friday.ToString(f)}");
    Console.WriteLine($"Saturday = {DayOfWeek.Saturday.ToString(f)}");
    Console.WriteLine($"Sunday = {DayOfWeek.Sunday.ToString(f)}");
    Console.WriteLine();
}
FormatString =
Monday = Monday
Tuesday = Tuesday
Wednesday = Wednesday
Thursday = Thursday
Friday = Friday
Saturday = Saturday
Sunday = Sunday

FormatString = G
Monday = Monday
Tuesday = Tuesday
Wednesday = Wednesday
Thursday = Thursday
Friday = Friday
Saturday = Saturday
Sunday = Sunday

FormatString = X
Monday = 00000001
Tuesday = 00000002
Wednesday = 00000003
Thursday = 00000004
Friday = 00000005
Saturday = 00000006
Sunday = 00000000

FormatString = F
Monday = Monday
Tuesday = Tuesday
Wednesday = Wednesday
Thursday = Thursday
Friday = Friday
Saturday = Saturday
Sunday = Sunday

FormatString = D
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
Sunday = 0

Enum.ToString()はこういうことらしい

列挙型形式文字列
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/enumeration-format-strings

何も指定しないとGと同値になる。
GFの違いが分からないが、EnumにFlags属性があると何か変わるらしい。
(公式の例示が微妙で分からないが、少なくともDayOfWeekには関係が無さそう)

Dはint、Xはbyte。


「何曜日」が欲しければ、DateTime.ToString(String)を指定するか、CultureInfo.DateTimeFormat.GetDayName(DayOfWeek)を使えばよさそう。
日付から取得するときは前者、一覧が欲しければ後者がいいと思う。凝らないなら素直に手打ちする。

var ci = new CultureInfo("ja-JP");
Console.WriteLine($"CultureInfoName = {ci.Name}");
Console.WriteLine($"{DateTime.Now.ToString("yyyy/MM/dd ddd dddd")}");
Console.WriteLine($"Monday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Monday)}");
Console.WriteLine($"Tuesday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Tuesday)}");
Console.WriteLine($"Wednesday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Wednesday)}");
Console.WriteLine($"Thursday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Thursday)}");
Console.WriteLine($"Friday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Friday)}");
Console.WriteLine($"Saturday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Saturday)}");
Console.WriteLine($"Sunday = {ci.DateTimeFormat.GetDayName(DayOfWeek.Sunday)}");
CultureInfoName = ja-JP
2021/02/04 木 木曜日
Monday = 月曜日
Tuesday = 火曜日
Wednesday = 水曜日
Thursday = 木曜日
Friday = 金曜日
Saturday = 土曜日
Sunday = 日曜日
1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?