Rubyを使用して、次の日曜日がその月の第1日曜日、第2日曜日、または第3日曜日であるかどうかをどのように判断できますか?
1 に答える
3
@ElYusubov-近いですが、完全には正しくありません。
開始点として、分割は7(1週間の日数)である必要があります。ただし、time.dayは1から31までの月の日を与えるため、最初に除算の前に1を減算し、除算の後に1を加算する必要があります。毎月最初の8日間は...
Day number (Day# - 1) / 7 Week#
---------- -------------- -----
1 0.0 1
2 0.14 1
3 0.29 1
4 0.43 1
5 0.57 1
6 0.71 1
7 0.86 1
8 1 2
曜日が何であれ、その週#は、その曜日の最初、2番目などであるかどうかを示します。しかし、あなたは来たる日曜日を望んでいます。
wdayは平日-0から6を与え、0は日曜日を意味します。では、次の日曜日まで何日ありますか?ええと、それはあなたの「来る」の定義に依存しますが、today == Sundayを除外すると、基本的に今日の平日を7から引きます。
Weekday today Days until next Sunday
------------- ----------------------
0 (Sun) 7
1 (Mon) 6
2 (Tue) 5
3 (Wed) 4
4 (Thu) 3
5 (Fri) 2
6 (Sat) 1
「来る」日曜日を今日にする場合は、同じことを行いますが、7をゼロに置き換えます。条件付きチェックを実行するか、モジュロ/剰余演算子を使用できます。
とにかく、次の日曜日が何日先かがわかれば、その日付値を計算し(今日の日付にそれらの日を加算)、最初の方法を使用して、今日ではなくその日付の月の週番号を決定できます(最初の方法( 1を引き、7で割り、1を足します)。
関連する語彙...
Date.wday 0 to 6 (0 = sunday)
Date.day 1 to 31
Rubyを知らないので、コードを提供しようとはしません。
于 2012-09-25T05:05:49.317 に答える