WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■年月日から曜日や日数を算出
(更新:2024/05/14)


指定した年月日から曜日や日数などを算出します。



ショートカット
■仕様の確認
■年月日→曜日
■年月日の●日先(●日前)→年月日
■年月日〜年月日→日数


  
■仕様の確認

年月日→曜日
年月日の●日先(●日前)→年月日
年月日〜年月日→日数
の3種類の処理をそれぞれ異なるコモンイベントに設定し、
コモンイベントを呼び出すと、それぞれの計算結果を返します。



コモンイベントの呼び出し時に設定する[年][月][日]は、
設定値を「0以下」にすると現在の[年][月][日]がそれぞれ設定されます。

呼び出し時の[年]の設定が「1〜1582」の場合は「1583」に修正されます。

呼び出し時の[月]の設定が「13以上」の場合は「12」に修正されます。

呼び出し時の[日]の設定が「11月31日」のような存在しない日にちになっている場合は、
「11月30日」と言ったように、その月の月末日が設定されます。



当ページの処理は「グレゴリオ暦」で計算しているため、
グレゴリオ暦が使用される前の1582年10月15日以前は、曜日の計算にずれが生じます。
そのため、年月日の設定は「西暦1583年以降」になっています。



うるう年は4年に1回来ますが、400年の間に3回はうるう年が無く、
この先「2100年」「2200年」「2300年」はありません。

一応イベント設定では「400年の間に3回はうるう年が無い」が設定されていますが、
西暦10000年くらいになると、現在のうるう年のルール設定では、
1日以上の誤差が生じる可能性があり、さらにうるう年の調整が必要になるらしいです。

そのため、西暦10000年の曜日も一応算出する事ができますが、
算出された曜日が正しいと言えるかどうかは不明です。


▲トップへ戻る▲


  
■年月日→曜日

指定した年月日から曜日を返します。



返す値は以下のとおりです。

曜日 返す値
月曜日 0
火曜日 1
水曜日 2
木曜日 3
金曜日 4
土曜日 5
日曜日 6



▼コモンイベントの設定

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「年月日→曜日」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊設定
数値1 年(0=現在) 0  
数値2 月(0=現在) 0  
数値3 日(0=現在) 0  
返す値 曜日 セルフコモン10[数]:出力曜日

■条件分岐(変数): 【1】 CSelf0[年] が 0 以下
-◇分岐: 【1】 [ CSelf0[年] が 0 以下 ]の場合↓
|■変数操作: CSelf0[年] = Sys77:現在の[年] + 0
|■
◇分岐終了◇
■変数操作: CSelf0[年] 下限= 1583 + 0
■条件分岐(変数): 【1】 CSelf1[月] が 0 以下
         【2】 CSelf1[月] が 13 以上
-◇分岐: 【1】 [ CSelf1[月] が 0 以下 ]の場合↓
|■変数操作: CSelf1[月] = Sys78:現在の[月] + 0
|■
-◇分岐: 【2】 [ CSelf1[月] が 13 以上 ]の場合↓
|■変数操作: CSelf1[月] = 12 + 0
|■変数操作: CSelf1[月] = 12 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf2[日] が 0 以下
-◇分岐: 【1】 [ CSelf2[日] が 0 以下 ]の場合↓
|■変数操作: CSelf2[日] = Sys79:現在の[日] + 0
|■
◇分岐終了◇
■変数操作: CSelf20[日数:1月]〜CSelf31[日数:12月] = 31 + 0
■変数操作: CSelf21[日数:2月] = 28 + 0
■変数操作: CSelf23[日数:4月] = 30 + 0
■変数操作: CSelf25[日数:6月] = 30 + 0
■変数操作: CSelf28[日数:9月] = 30 + 0
■変数操作: CSelf30[日数:11月] = 30 + 0
■変数操作: CSelf12[年-1] = CSelf0[年] - 1
■変数操作: CSelf13[月-1] = CSelf1[月] - 1
■変数操作: CSelf11[合計日数] = CSelf12[年-1] * 365
■変数操作: CSelf11[合計日数] += CSelf12[年-1] / 4
■変数操作: CSelf11[合計日数] -= CSelf12[年-1] / 100
■変数操作: CSelf11[合計日数] += CSelf12[年-1] / 400
■変数操作: CSelf14[うるう年4単位] = CSelf0[年] % 4
■変数操作: CSelf15[うるう年100単位] = CSelf0[年] % 100
■変数操作: CSelf16[うるう年400単位] = CSelf0[年] % 400
■条件分岐(変数): 【1】 CSelf14[うるう年4単位] が 0 と同じ
-◇分岐: 【1】 [ CSelf14[うるう年4単位] が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf16[うるう年400単位] が 0 と同じ
          【2】 CSelf15[うるう年100単位] が 0 以外
|-◇分岐: 【1】 [ CSelf16[うるう年400単位] が 0 と同じ ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[うるう年100単位] が 0 以外 ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: CSelf18[変数20-31] = 1600020 + 0
■回数付きループ [ CSelf13[月-1] ]回
|■変数操作: CSelf11[合計日数] += V[CSelf18[変数20-31]] + 0
|■変数操作: CSelf18[変数20-31] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf2[日] 上限= V[CSelf18[変数20-31]] + 0
■変数操作: CSelf11[合計日数] += CSelf2[日] + 6
■変数操作: CSelf10[出力曜日] = CSelf11[合計日数] % 7
▼ 以降は処理結果を表示するデバッグ文の処理
■文字列操作:CSelf5 = "\cself[10]"
■文字列操作:CSelf5 =<から文字列を置換> "0" → "月曜日"
■文字列操作:CSelf5 =<から文字列を置換> "1" → "火曜日"
■文字列操作:CSelf5 =<から文字列を置換> "2" → "水曜日"
■文字列操作:CSelf5 =<から文字列を置換> "3" → "木曜日"
■文字列操作:CSelf5 =<から文字列を置換> "4" → "金曜日"
■文字列操作:CSelf5 =<から文字列を置換> "5" → "土曜日"
■文字列操作:CSelf5 =<から文字列を置換> "6" → "日曜日"
■デバッグ文:\cself[5](\cself[0]年\cself[1]月\cself[2]日)



▼マップイベントの設定



【イベントコード表示】

■マップイベント

■イベントの挿入[名]: このEvのSelf0 = ["年月日→曜日"] <コモンEv 215> / 0 / 0 / 0
■条件分岐(変数): 【1】 このEvのSelf0 が 0 と同じ
         【2】 このEvのSelf0 が 1 と同じ
         【3】 このEvのSelf0 が 2 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 0 と同じ ]の場合↓
|■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「月曜日」。
|■
-◇分岐: 【2】 [ このEvのSelf0 が 1 と同じ ]の場合↓
|■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「火曜日」。
|■
-◇分岐: 【3】 [ このEvのSelf0 が 2 と同じ ]の場合↓
|■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「水曜日」。
|■
-◇上記以外
|■条件分岐(変数): 【1】 このEvのSelf0 が 3 と同じ
          【2】 このEvのSelf0 が 4 と同じ
          【3】 このEvのSelf0 が 5 と同じ
|-◇分岐: 【1】 [ このEvのSelf0 が 3 と同じ ]の場合↓
||■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「木曜日」。
||■
|-◇分岐: 【2】 [ このEvのSelf0 が 4 と同じ ]の場合↓
||■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「金曜日」。
||■
|-◇分岐: 【3】 [ このEvのSelf0 が 5 と同じ ]の場合↓
||■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「土曜日」。
||■
|-◇上記以外
||■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「日曜日」。
||■
|◇分岐終了◇
|■
◇分岐終了◇



文字列変数を使った方法もあります。

【イベントコード表示】

■マップイベント

■イベントの挿入[名]: このEvのSelf0 = ["年月日→曜日"] <コモンEv 215> / 0 / 0 / 0
■文字列操作:S0[[サンプル]一時文字列] = "\cself[10]"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "0" → "月曜日"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "1" → "火曜日"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "2" → "水曜日"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "3" → "木曜日"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "4" → "金曜日"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "5" → "土曜日"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "6" → "日曜日"
■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は「\s[0]」。


▲トップへ戻る▲


  
■年月日の●日先(●日前)→年月日

指定した年月日から指定した日数を加算した時の年月日を返します。



コモンイベントの呼び出し時に、開始年月日が「2020年4月1日」で加算日数が「5」の場合は、
返す値は「20200406」になります。



加算日数の設定がマイナスの場合は「●日前」の設定になります。

例えば開始年月日が「2020年4月6日」で加算日数が「-5」の場合は、
返す値は「20200401」になります。



返す値が「西暦1583年以前」の場合は、返す値が「0」になります。



▼コモンイベントの設定

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「年月日の●日先→年月日」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊設定
数値1 年(0=現在) 0  
数値2 月(0=現在) 0  
数値3 日(0=現在) 0  
数値4 加算日数 0  
返す値 出力年月日 セルフコモン10[数]:出力年月日

■条件分岐(変数): 【1】 CSelf0[年] が 0 以下
-◇分岐: 【1】 [ CSelf0[年] が 0 以下 ]の場合↓
|■変数操作: CSelf0[年] = Sys77:現在の[年] + 0
|■
◇分岐終了◇
■変数操作: CSelf0[年] 下限= 1583 + 0
■条件分岐(変数): 【1】 CSelf1[月] が 0 以下
         【2】 CSelf1[月] が 13 以上
-◇分岐: 【1】 [ CSelf1[月] が 0 以下 ]の場合↓
|■変数操作: CSelf1[月] = Sys78:現在の[月] + 0
|■
-◇分岐: 【2】 [ CSelf1[月] が 13 以上 ]の場合↓
|■変数操作: CSelf1[月] = 12 + 0
|■変数操作: CSelf1[月] = 12 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf2[日] が 0 以下
-◇分岐: 【1】 [ CSelf2[日] が 0 以下 ]の場合↓
|■変数操作: CSelf2[日] = Sys79:現在の[日] + 0
|■
◇分岐終了◇
■変数操作: CSelf20[日数:1月]〜CSelf31[日数:12月] = 31 + 0
■変数操作: CSelf21[日数:2月] = 28 + 0
■変数操作: CSelf23[日数:4月] = 30 + 0
■変数操作: CSelf25[日数:6月] = 30 + 0
■変数操作: CSelf28[日数:9月] = 30 + 0
■変数操作: CSelf30[日数:11月] = 30 + 0
■変数操作: CSelf12[年-1] = CSelf0[年] - 1
■変数操作: CSelf13[月-1] = CSelf1[月] - 1
■変数操作: CSelf11[合計日数] = CSelf12[年-1] * 365
■変数操作: CSelf11[合計日数] += CSelf12[年-1] / 4
■変数操作: CSelf11[合計日数] -= CSelf12[年-1] / 100
■変数操作: CSelf11[合計日数] += CSelf12[年-1] / 400
■変数操作: CSelf14[うるう年4単位] = CSelf0[年] % 4
■変数操作: CSelf15[うるう年100単位] = CSelf0[年] % 100
■変数操作: CSelf16[うるう年400単位] = CSelf0[年] % 400
■条件分岐(変数): 【1】 CSelf14[うるう年4単位] が 0 と同じ
-◇分岐: 【1】 [ CSelf14[うるう年4単位] が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf16[うるう年400単位] が 0 と同じ
          【2】 CSelf15[うるう年100単位] が 0 以外
|-◇分岐: 【1】 [ CSelf16[うるう年400単位] が 0 と同じ ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[うるう年100単位] が 0 以外 ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: CSelf18[変数20-31] = 1600020 + 0
■回数付きループ [ CSelf13[月-1] ]回
|■変数操作: CSelf11[合計日数] += V[CSelf18[変数20-31]] + 0
|■変数操作: CSelf18[変数20-31] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf2[日] 上限= V[CSelf18[変数20-31]] + 0
■変数操作: CSelf2[日] -= 1 + 0
■変数操作: CSelf11[合計日数] += CSelf2[日] + CSelf3[加算日数]
▼ 合計日数を出力年月日に変換
■変数操作: CSelf0[年] = 1582 + 0
■変数操作: CSelf1[月]〜CSelf2[日] = 1 + 0
■変数操作: CSelf40[合計比較:年]〜CSelf42[合計比較:日] = 0 + 0
■ループ開始
|■変数操作: CSelf17[合計比較] = CSelf0[年] * 365
|■変数操作: CSelf17[合計比較] += CSelf0[年] / 4
|■変数操作: CSelf17[合計比較] -= CSelf0[年] / 100
|■変数操作: CSelf17[合計比較] += CSelf0[年] / 400
|■条件分岐(変数): 【1】 CSelf17[合計比較] が CSelf11[合計日数] 超
|-◇分岐: 【1】 [ CSelf17[合計比較] が CSelf11[合計日数] 超 ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf40[合計比較:年] = CSelf17[合計比較] + 0
|■変数操作: CSelf0[年] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf21[日数:2月] = 28 + 0
■変数操作: CSelf14[うるう年4単位] = CSelf0[年] % 4
■変数操作: CSelf15[うるう年100単位] = CSelf0[年] % 100
■変数操作: CSelf16[うるう年400単位] = CSelf0[年] % 400
■条件分岐(変数): 【1】 CSelf14[うるう年4単位] が 0 と同じ
-◇分岐: 【1】 [ CSelf14[うるう年4単位] が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf16[うるう年400単位] が 0 と同じ
          【2】 CSelf15[うるう年100単位] が 0 以外
|-◇分岐: 【1】 [ CSelf16[うるう年400単位] が 0 と同じ ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[うるう年100単位] が 0 以外 ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: CSelf18[変数20-31] = 1600020 + 0
■回数付きループ [ 11 ]回
|■変数操作: CSelf17[合計比較] = V[CSelf18[変数20-31]] + 0
|■変数操作: CSelf17[合計比較] += CSelf41[合計比較:月] + CSelf40[合計比較:年]
|■条件分岐(変数): 【1】 CSelf17[合計比較] が CSelf11[合計日数] 超
|-◇分岐: 【1】 [ CSelf17[合計比較] が CSelf11[合計日数] 超 ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf41[合計比較:月] += V[CSelf18[変数20-31]] + 0
|■変数操作: CSelf18[変数20-31] += 1 + 0
|■変数操作: CSelf1[月] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf17[合計比較] = CSelf41[合計比較:月] + CSelf40[合計比較:年]
■変数操作: CSelf2[日] += CSelf11[合計日数] - CSelf17[合計比較]
■変数操作: CSelf2[日] += 1 + 0
■変数操作: CSelf10[出力年月日] = CSelf0[年] * 10000
■変数操作: CSelf10[出力年月日] += CSelf1[月] * 100
■変数操作: CSelf10[出力年月日] += CSelf2[日] + 0
■条件分岐(変数): 【1】 CSelf0[年] が 1582 以下
-◇分岐: 【1】 [ CSelf0[年] が 1582 以下 ]の場合↓
|■変数操作: CSelf10[出力年月日] = 0 + 0
|■
◇分岐終了◇
▼ 以降は処理結果を表示するデバッグ文の処理
■デバッグ文:\cself[10](\cself[0]年\cself[1]月\cself[2]日)



▼マップイベントの設定

本日から1000日後の年月日を出力する設定です。



【イベントコード表示】

■マップイベント

■イベントの挿入[名]: このEvのSelf2 = ["年月日の●日先→年月日"] <コモンEv 215> / 0 / 0 / 0 / 1000
■変数操作: このEvのSelf0 = このEvのSelf2 / 10000
■変数操作: このEvのSelf1 = このEvのSelf2 / 100
■変数操作: このEvのSelf1〜このEvのSelf2 %= 100 + 0
■文章:本日「\sys[77]年\sys[78]月\sys[79]日」の1000日後は、\n「\self[0]年\self[1]月\self[2]日」です。


▲トップへ戻る▲


  
■年月日〜年月日→日数

指定した2つの年月日の日数を返します。



日数は開始日と終了日を含むため、例えば「2020年4月10日」と「2020年4月11日」を設定した場合は「2」を返します。



「2020年4月10日 → 2020年4月11日」、「2020年4月11日 → 2020年4月10日」のように、
どちらが過去になっても返す値はプラス値になります。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「年月日〜年月日→日数」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊設定
数値1 年(0=現在) 0  
数値2 月(0=現在) 0  
数値3 日(0=現在) 0  
文字列1 年(0=現在) 0  
文字列2 月(0=現在) 0  
文字列3 日(0=現在) 0  
返す値 出力日数 セルフコモン10[数]:出力日数

■条件分岐(変数): 【1】 CSelf0[開始年] が 0 以下
-◇分岐: 【1】 [ CSelf0[開始年] が 0 以下 ]の場合↓
|■変数操作: CSelf0[開始年] = Sys77:現在の[年] + 0
|■
◇分岐終了◇
■変数操作: CSelf0[開始年] 下限= 1583 + 0
■条件分岐(変数): 【1】 CSelf1[開始月] が 0 以下
         【2】 CSelf1[開始月] が 13 以上
-◇分岐: 【1】 [ CSelf1[開始月] が 0 以下 ]の場合↓
|■変数操作: CSelf1[開始月] = Sys78:現在の[月] + 0
|■
-◇分岐: 【2】 [ CSelf1[開始月] が 13 以上 ]の場合↓
|■変数操作: CSelf1[開始月] = 12 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf2[開始日] が 0 以下
-◇分岐: 【1】 [ CSelf2[開始日] が 0 以下 ]の場合↓
|■変数操作: CSelf2[開始日] = Sys79:現在の[日] + 0
|■
◇分岐終了◇
■変数操作: CSelf20[日数:1月]〜CSelf31[日数:12月] = 31 + 0
■変数操作: CSelf21[日数:2月] = 28 + 0
■変数操作: CSelf23[日数:4月] = 30 + 0
■変数操作: CSelf25[日数:6月] = 30 + 0
■変数操作: CSelf28[日数:9月] = 30 + 0
■変数操作: CSelf30[日数:11月] = 30 + 0
■変数操作: CSelf12[年-1] = CSelf0[開始年] - 1
■変数操作: CSelf13[月-1] = CSelf1[開始月] - 1
■変数操作: CSelf11[合計日数] = CSelf12[年-1] * 365
■変数操作: CSelf11[合計日数] += CSelf12[年-1] / 4
■変数操作: CSelf11[合計日数] -= CSelf12[年-1] / 100
■変数操作: CSelf11[合計日数] += CSelf12[年-1] / 400
■変数操作: CSelf14[うるう年4単位] = CSelf0[開始年] % 4
■変数操作: CSelf15[うるう年100単位] = CSelf0[開始年] % 100
■変数操作: CSelf16[うるう年400単位] = CSelf0[開始年] % 400
■条件分岐(変数): 【1】 CSelf14[うるう年4単位] が 0 と同じ
-◇分岐: 【1】 [ CSelf14[うるう年4単位] が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf16[うるう年400単位] が 0 と同じ
          【2】 CSelf15[うるう年100単位] が 0 以外
|-◇分岐: 【1】 [ CSelf16[うるう年400単位] が 0 と同じ ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[うるう年100単位] が 0 以外 ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: CSelf18[変数20-31] = 1600020 + 0
■回数付きループ [ CSelf13[月-1] ]回
|■変数操作: CSelf11[合計日数] += V[CSelf18[変数20-31]] + 0
|■変数操作: CSelf18[変数20-31] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf2[開始日] 上限= V[CSelf18[変数20-31]] + 0
■変数操作: CSelf11[合計日数] += CSelf2[開始日] + 0
▼ もう一方の合計日数を算出
■変数操作: CSelf40[処理年] = CSelf5[終了年] + 0
■変数操作: CSelf41[処理月] = CSelf6[終了月] + 0
■変数操作: CSelf42[処理日] = CSelf7[終了日] + 0
■条件分岐(変数): 【1】 CSelf40[処理年] が 0 以下
-◇分岐: 【1】 [ CSelf40[処理年] が 0 以下 ]の場合↓
|■変数操作: CSelf40[処理年] = Sys77:現在の[年] + 0
|■
◇分岐終了◇
■変数操作: CSelf40[処理年] 下限= 1583 + 0
■条件分岐(変数): 【1】 CSelf41[処理月] が 0 以下
         【2】 CSelf41[処理月] が 13 以上
-◇分岐: 【1】 [ CSelf41[処理月] が 0 以下 ]の場合↓
|■変数操作: CSelf41[処理月] = Sys78:現在の[月] + 0
|■
-◇分岐: 【2】 [ CSelf41[処理月] が 13 以上 ]の場合↓
|■変数操作: CSelf41[処理月] = 12 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf42[処理日] が 0 以下
-◇分岐: 【1】 [ CSelf42[処理日] が 0 以下 ]の場合↓
|■変数操作: CSelf42[処理日] = Sys79:現在の[日] + 0
|■
◇分岐終了◇
■変数操作: CSelf21[日数:2月] = 28 + 0
■変数操作: CSelf12[年-1] = CSelf40[処理年] - 1
■変数操作: CSelf13[月-1] = CSelf41[処理月] - 1
■変数操作: CSelf10[出力日数] = CSelf12[年-1] * 365
■変数操作: CSelf10[出力日数] += CSelf12[年-1] / 4
■変数操作: CSelf10[出力日数] -= CSelf12[年-1] / 100
■変数操作: CSelf10[出力日数] += CSelf12[年-1] / 400
■変数操作: CSelf14[うるう年4単位] = CSelf40[処理年] % 4
■変数操作: CSelf15[うるう年100単位] = CSelf40[処理年] % 100
■変数操作: CSelf16[うるう年400単位] = CSelf40[処理年] % 400
■条件分岐(変数): 【1】 CSelf14[うるう年4単位] が 0 と同じ
-◇分岐: 【1】 [ CSelf14[うるう年4単位] が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf16[うるう年400単位] が 0 と同じ
          【2】 CSelf15[うるう年100単位] が 0 以外
|-◇分岐: 【1】 [ CSelf16[うるう年400単位] が 0 と同じ ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[うるう年100単位] が 0 以外 ]の場合↓
||■変数操作: CSelf21[日数:2月] += 1 + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: CSelf18[変数20-31] = 1600020 + 0
■回数付きループ [ CSelf13[月-1] ]回
|■変数操作: CSelf10[出力日数] += V[CSelf18[変数20-31]] + 0
|■変数操作: CSelf18[変数20-31] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf42[処理日] 上限= V[CSelf18[変数20-31]] + 0
■変数操作: CSelf10[出力日数] += CSelf42[処理日] - CSelf11[合計日数]
■条件分岐(変数): 【1】 CSelf10[出力日数] が 0 以上
-◇分岐: 【1】 [ CSelf10[出力日数] が 0 以上 ]の場合↓
|■変数操作: CSelf10[出力日数] 絶対値= CSelf10[出力日数] + 1
|■
-◇上記以外
|■変数操作: CSelf10[出力日数] 絶対値= CSelf10[出力日数] - 1
|■
◇分岐終了◇
▼ 以降は処理結果を表示するデバッグ文の処理
■デバッグ文:\cself[10]日(\cself[0]年\cself[1]月\cself[2]日〜\cself[40]年\cself[41]月\cself[42]日)



▼マップイベントの設定

「2001年1月1日」から本日までの日数を出力する設定です。



【イベントコード表示】

■マップイベント

■イベントの挿入[名]: このEvのSelf0 = ["年月日〜年月日→日数"] <コモンEv 215> / 2001 / 1 / 1 / 0 / 0 / 0
■文章:本日「\sys[77]年\sys[78]月\sys[79]日」は、\n21世紀が始まって「\self[0]日目」です。



コモンイベントを呼び出す設定で、右側の文字列の設定ではチェックを付けて設定してください。
またセルフ変数で設定する場合は、左側は「変数呼び出し値」右側は「特殊文字」で設定してください。

▼両方の[年]をセルフ変数[0]で設定する場合の設定例



▲トップへ戻る▲



◎関連ページ

◆システム変数[77:現在の[年]][78:現在の[月]][79:現在の[日]]

YADOT-WOLFトップ  気紛れな空間へ戻る  メール