里々技術記事ネタ募集2024春へ投稿いただいたネタを記事化しました。
ご自由にお使いください。
作例
まず以下のスクリプトを辞書に加えます。
同名の*や@などが既に存在する場合、そこに必要な記述を加えてください。
同名の文・単語群・変数が複数存在すると、それらの中からのランダム選択になってしまいます。
@グレゴリオ暦での経過日数 (calc, 365*(A0)+(A0)/4-(A0)/100+(A0)/400 +306*(calc,(A1)+1)/10+(A2)-428)
*OnSatoriLoad $現在のグレゴリオ暦経過日数=(call,グレゴリオ暦での経過日数,(現在年),(現在月),(現在日)) *OnHourTimeSignal >時報0時【タブ】(現在時)==0 *時報0時 $現在のグレゴリオ暦経過日数=(call,グレゴリオ暦での経過日数,(現在年),(現在月),(現在日)) #0時の時報が既に存在する場合はそこに日数計算の部分を加える
#satori_conf.txtに存在する「*初期化」に1行追加 *初期化 $現在のグレゴリオ暦経過日数=(call,グレゴリオ暦での経過日数,(現在年),(現在月),(現在日))
そして以下のようにすると、特定の日から現在までの経過日数を算出できます。
動作テストには「開発用パレット」の『現在時刻の仮想的変更』が有用です。
#ユーザ誕生月と日はテスト用に設定しています。不要な場合は消してください *日付トークのテスト $ユーザ誕生月【タブ】2 $ユーザ誕生日【タブ】1 $今年のユーザ誕生日までの日数=(call,グレゴリオ暦での経過日数,(現在年),(ユーザ誕生月),(ユーザ誕生日))-(現在のグレゴリオ暦経過日数) >今年のユーザ誕生日から1日後【タブ】(今年のユーザ誕生日までの日数)==-1 >今年のユーザ誕生日より後【タブ】(今年のユーザ誕生日までの日数)<0 >今年のユーザ誕生日より前【タブ】(今年のユーザ誕生日までの日数)>0 >今年のユーザ誕生日当日【タブ】(今年のユーザ誕生日までの日数)==0 *今年のユーザ誕生日から1日後 :今年のユーザ誕生日から1日後です。 *今年のユーザ誕生日より後 :今年のユーザ誕生日から(calc,0-(今年のユーザ誕生日までの日数))日経ちました。 #当日より後だと数値がマイナスなので反転させています *今年のユーザ誕生日より前 :今年のユーザ誕生日まであと(今年のユーザ誕生日までの日数)日です。 *今年のユーザ誕生日当日 :今日はユーザの誕生日です。 #数値が0だと当日です