2012-02-08 7 views
64

整数形式で曜日を取得するにはどうすればよいですか? 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 
+0

@Joe、コードブロックにコードを配置するコードを再フォーマットできませんでした。なぜですか? – uday

+3

あなたは 'ToString()'を呼び出しているので、なぜ文字列以外の文字列を期待していますか? –

+0

@Dave、私はそれを質問のテキストと区別する必要がありました。そうでなければ、コードをインデントしました。 – Joe

答えて

114

使用

day1 = (int)ClockInfoFromSystem.DayOfWeek; 
+0

月曜日は0を返します。 – akshaykumar6

+9

@developer日曜日は0です。http://msdn.microsoft.com/en-us/library/system.dayofweek.aspx –

+31

mondayを0にしたい場合は、日をシフトするだけです。 'day1 =(int)(ClockInfoFromSystem .DayOfWeek + 6)%7' –

6
day1= (int)ClockInfoFromSystem.DayOfWeek; 
+0

@JustinSatyr - FiveToolsは明らかに単なる例を挙げています。著者がString値を整数変数に設定しようとしたのは彼のせいではありません。 –

+0

@Ramhound:私はdownvoteせず、私は批判していませんでした。私は彼がコードを誤解していると思った。そして、明らかに彼は彼のコードを修正したという事実によって正しかった。 –

55
int day = (int)DateTime.Now.DayOfWeek; 

週の最初の日:日曜日(ゼロの値を持つ)

37

あなたはに週の最初の曜日を設定したい場合整数値1の月曜日と整数値の日曜日7

int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek; 
+3

すべての元気な人たちはこれを望んでいます。 ISO 8601はこの点についてはかなり明確です。月曜日は1日目、日曜日は7日目です。 – Morvael

0
DateTime currentDateTime = DateTime.Now; 
int week = (int) currentDateTime.DayOfWeek; 
4

これを試してください。それだけで正常に動作します:

int week = Convert.ToInt32(currentDateTime.DayOfWeek); 
2

を文字列などのDayOfWeekとして列挙型の整数値を取得するための正しい方法は次のとおりです。整数値1、日曜日と月曜日を得るために

DayOfWeek.ToString("d") 
+3

これは 'int'ではなく' string'を返します。 –

0

別の方法整数値7

int day = ((int)DateTime.Now.DayOfWeek + 6) % 7 + 1;