はじめに
みなさんこんにちは。
今回はみなさんに知っていただきたい内容を記事にしてみました。
今回は、、、
和暦から西暦への変換方法です!
では、まずは準備から説明いたします。
事前準備
1.和暦を格納する変数を追加してください。
タイプ:Short Text
デフォルト値:和暦の日付(時間はあってもなくても良い)
2.「年」「月日」「西暦」の3つの変数を作成します。
タイプ:Short Text
デフォルト値:空
こんな感じになっていればOKです。
日付の形式については一切説明いたしません。
それぞれのご用途に合わせてお使いください。
実際の処理
1.まずはアクションステップを追加から「変数の変換」を追加します。
2.「+」ボタンをクリックして変数の変換設定を行います。
開始:和暦が格納された変数
終了:年を格納する変数
以下のようになっていればOKです。
テスト出力値の前後にスペースが無い状態の和暦の年だけが表示されていればOK
3.手順2と同じく設定を行います。
ここでは、和暦の変数から「月日」を抽出し、変数に格納します。
開始:和暦が格納された変数
終了:年を格納する変数
以下のようになっていればOKです。
テスト出力値の前後にスペースが無い状態の和暦の年だけが表示されていればOK
上記の手順が終わり、処理を進めると「年」と「月日」の変数が以下のようになっていることを確認してください。
4.新しくアクションステップを追加し、「変数の割当」を追加します。
6.このままでは変換出来ませんので、値の右にある「▼」をクリックし、
コンバータに変更します。
すると、以下のようになります。
7.では、中身を設定していきます。
まず、「変数を取得」から「年」の変数を設定します。
以下のようになっていればOKです。
8.次の手順が今回の肝になります。
では「+」ボタンをクリックし、その他 > JavaScriptを使用して変換
を選択します。
上記の画面に以下のコードを貼ってください
OUTPUT = seireki(INPUT)
//和暦 => 西暦
function seireki(warekiYear){
var matches = warekiYear.match('^(明治|大正|昭和|平成|令和)([元0-90-9]+)年$');
if(matches){
var eraName = matches[1];
var year = parseInt(matches[2].replace(/[元0-9]/g,function(match){
if(match === '元'){
return 1;
}
return String.fromCharCode(match.charCodeAt(0) - 65248);
}));
if(eraName === '明治'){
year += 1867;
}else if(eraName === '大正'){
year += 1911;
}else if(eraName === '昭和'){
year += 1925;
}else if(eraName === '平成'){
year += 1988;
}else if(eraName === '令和'){
year += 2018;
}
return year + '年';
}
return null;
}
貼り付けが終わって、真ん中下にあるテストボタンをクリックします。
以下のように、和暦から西暦に変換されてればOKです。
テスト出力値の「年」が不要な場合は、下から7行目の
「return year + '年';」の「+ '年'」を削除してください。
ただし、最後の「;(セミコロン)」は残してください!
答えがテスト出力値に「null」と表記されている場合は、
何かが間違っているのでご確認ください。
(例)年の変数内にスペースが入っている、形式が違うなど
10.あとは西暦の変数に「年」と「月日」の合算すると、、、
以下のようになっています!
さいごに
ぜひ参考にしていただければ幸いです。