0

毎週のリマインダーのアルゴリズムはありますか?

たとえば、木曜日にリマインダーを設定し、「毎週」オプションをオンにします。
その場合、リマインダーは毎週木曜日にアラートを出すことになっていますが、これはどのように行われるのでしょうか?

私はアイデアを考えましたが、それは非常にばかげていると思います:

  1. 今日の「日」を取得します。
  2. 今日の「日付」を取得します。
  3. 希望日番号を取得します。
  4. 両方の日を互いに引きます。
  5. [4] を使用してその日の日付を取得します。
  6. アラートごとにカウンターを 7 ずつ増やします。

これでうまくいくかどうかはわかりませんが、もっといい方法があるはずなので、実装を始める前に意見を求めたいと思います。

PS: JavaScript を使用しているため、機能は非常に限られています。

4

1 に答える 1

2

あなたがやろうとしていることは完全には明らかではありません。

  1. コードで木曜日かどうかを知る必要がある場合は、 を使用すると非常に簡単getDayです。これにより、曜日がわかります。

    if (new Date().getDay() === 4) {
        // It's Thursday
    }
    

    曜日番号0= Sundayで始まります。

  2. コードで、特定の日付から始まる次の木曜日を見つける必要がある場合:

    var dt = /* ...the start date... */;
    while (dt.getDay() !== 4) {
        dt.setTime(dt.getTime() + 86400000)) // 86400000 = 1 day in milliseconds
    }
    

    またはもちろんループなし:

    var dt = /* ...the start date... */;
    var days = 4 - dt.getDay();
    if (days < 0) {
        days += 7;
    }
    dt.setTime(dt.getTime() + (days * 86400000));
    
  3. すでに木曜日があり、次の木曜日の日付を知る必要がある場合:

    var nextThursday = new Date(thisThursday.getTime() + (86400000 * 7));
    
于 2012-12-12T12:08:41.250 に答える