126

整数形式で曜日を取得するにはどうすればよいですか?ToStringは文字列のみを返すことを知っています。

DateTime ClockInfoFromSystem = DateTime.Now;
int day1;
string day2;
day1= ClockInfoFromSystem.DayOfWeek.ToString(); /// it is not working
day2= ClockInfoFromSystem.DayOfWeek.ToString(); /// it gives me string
4

10 に答える 10

195

使用する

day1 = (int)ClockInfoFromSystem.DayOfWeek;
于 2012-02-08T18:17:16.783 に答える
98
int day = (int)DateTime.Now.DayOfWeek;

週の最初の日:日曜日(値はゼロ)

于 2012-02-08T20:42:27.850 に答える
75

週の最初の曜日を整数値1の月曜日に設定し、整数値7の日曜日に設定する場合

int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek;
于 2013-12-30T02:49:06.160 に答える
6
day1= (int)ClockInfoFromSystem.DayOfWeek;
于 2012-02-08T18:17:50.417 に答える
5

これを試して。それはうまく機能します:

int week = Convert.ToInt32(currentDateTime.DayOfWeek);
于 2014-09-25T10:25:23.220 に答える
5

月曜日を整数値1で、日曜日を整数値7で取得する別の方法

int day =((int)DateTime.Now.DayOfWeek + 6)%7 + 1;
于 2018-02-04T00:44:06.637 に答える
4

DayOfWeekなどの列挙型の整数値を文字列として取得する正しい方法は次のとおりです。

DayOfWeek.ToString("d")
于 2014-12-24T09:41:32.170 に答える
2

正解は、int値を取得するための正解です。

ただし、たとえば日曜日であることを確認するだけの場合は、intにキャストする代わりに、次のコードを使用することを検討してください。これにより、はるかに読みやすくなります。

if (yourDateTimeObject.DayOfWeek == DayOfWeek.Sunday)
{
    // You can easily see you're checking for sunday, and not just "0"
}
于 2020-08-19T17:02:09.347 に答える
0
DateTime currentDateTime = DateTime.Now;
int week = (int) currentDateTime.DayOfWeek;
于 2014-03-11T21:26:35.283 に答える
0

読みやすさが重要です。

整数が必要な場合:

int day1 = (int)ClockInfoFromSystem.DayOfWeek;

平日の整数の文字列が必要な場合:

string daystr = $"{(int)ClockInfoFromSystem.DayOfWeek}"; // Unambiguous string of int.

推奨されるToString変換は使用しないでください。プログラマーの大多数は、それが月の日ではなく整数の文字列であることを確認するために検索する必要があるためです。本当にマイクロソフト?

string daystr = ClockInfoFromSystem.DayOfWeek.ToString("d"); // Whaa? Horrible! Don't do this.

週の初めに変更するには、Sunday mod 7からの日数を追加します。日曜日から逆算して日数を取得します。たとえば、日曜日から1つ戻ると土曜日、2日曜日から戻ると金曜日などです。

int satStart = (int)(ClockInfoFromSystem.DayOfWeek + 1) % 7; // Saturday start
int monStart = (int)(ClockInfoFromSystem.DayOfWeek + 6) % 7; // Monday start
于 2021-09-13T21:42:28.223 に答える