質問

平日(1〜7)の場合、その平日の最後の日付が何であったかを計算するにはどうすればよいですか

例:今日は水曜日、2008/11/12であり、最後の金曜日の日付が何であったかを知りたいです。

役に立ちましたか?

解決

today が現在の曜日である場合、次のようなものを使用できます。

days_since_friday = (((today - 1) + 7) - (6 - 1)) % 7

これは、金曜日が曜日の6日目で表されることを前提としています(つまり、1は日曜日を表します)。次に、現在の日付から days_since_friday を引くと、先週の終わりの日付が得られます。

上記の式は、必要以上に複雑です。日曜日の曜日が0から始まる場合、次のように単純化されます。

days_since_friday = ((today + 7) - 5) % 7

または

days_since_friday = (today + 2) % 7

他のヒント

一般的には? カレンダー計算をご覧ください。

前の週内のこの狭いケースでは?日数の違いを見つけます(金曜日= 5、水曜日= 3)。週の違いを見つけます(先週= -7日)。日+週のオフセットを見つけたら、そのオフセットをカレンダーの日付に適用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top