逆引きFormula 2.0 に戻る
数日ごとに発生するイベントなどは忘れがちです。そんなときにはリマインダーを作るとよいです。ある指定日から、◯日おきにTrueを返すフラグを作れば、そのイベントをトップ画面に表示できます。ここでは、例として「日付」から見て、隔日でのイベント発生日なら True を返す Formula を作ってみます。
- 「日付差分」を使う場合
/* 日付差分を 2 で割った余りが 0 なら true を返却 */ (prop("日付差分") % 2) == 0
- 「今日」、「時刻なし」を両方利用
/* 時刻なしプロパティと今日プロパティの間の日数を取得し、変数 diff に代入 */ let(diff, prop("時刻なし").dateBetween(prop("今日"), "days"), /* diff を 2 で割った余りが 0 なら true を返却 */ diff % 2 == 0 )
- 「今日」のみ利用。こちらも Formula 2.0 から導入された parseDate を使います。
lets( /* 日付プロパティの日付から時刻情報を削り、変数 d に代入 */ d, prop("日付").formatDate("YYYY-MM-DD").parseDate(), /* d と今日プロパティの間の日数を取得し、変数 diff に代入 */ diff, d.dateBetween(prop("今日"), "days"), /* 日付差分を 2 で割った余りが 0 なら true を返却 */ diff % 2 == 0 )
- 「時刻なし」のみ利用。こちらも Formula 2.0 から導入された parseDate を使います。
lets( /* 現在時刻から時刻情報を削り、変数 t に代入 */ t, now().formatDate("YYYY-MM-DD").parseDate(), /* 時刻なしプロパティと t の間の日数を取得し、変数 diff に代入 */ diff, prop("時刻なし").dateBetween(t, "days"), /* diff を 2 で割った余りが 0 なら true を返却 */ diff % 2 == 0 )
- 参照なし。こちらも Formula 2.0 から導入された parseDate を使います。
lets( /* 日付プロパティの日付から時刻情報を削り、変数 d に代入 */ d, prop("日付").formatDate("YYYY-MM-DD").parseDate(), /* 現在時刻から時刻情報を削り、変数 t に代入 */ t, now().formatDate("YYYY-MM-DD").parseDate(), /* d と t の間の日数を取得し、変数 diff に代入 */ diff, d.dateBetween(t, "days"), /* diff を 2 で割った余りが 0 なら true を返却 */ diff % 2 == 0 )
隔日なので、2 で割った余りを計算していますが、この部分を文字列から数値を取り出すには? で紹介した「繰り返し間隔」属性にすることで属性に応じて繰り返し間隔を切り替えることができます。このアイディアは Yuka さんの繰り返しタスクを作成するからいただきました。
これを応用したリマインダの記事もあるので参考にしてください。
日付関連