1.概要
日付の表示形式を変換したい場合、Unifinityでは次のように処理を行います。
ケース1)西暦の年月日を、表示形式の異なる西暦や和暦に変換する
このケースでは、フォーマットを変換する文字列関数を使用できます。
当記事のサンプルでは、次のケースについて説明しています。
変換前フォーマット | 例 |
---|---|
yyyy/M/d | 2019/7/5 |
↓
変換後フォーマット | 例 |
---|---|
yyyy/MM/dd | 2019/07/05 |
yyMMdd | 190705 |
gEE/MM/dd | R01/07/05 |
GGEE年MM月DD日 | 令01年07月05日 |
GGGEE年MM月DD日 | 令和01年07月05日 |
ケース2)和暦の年月日を、西暦に変換する
このケースでは、フォーマットを変換する文字列関数がないため、文字列関数や計算によって変換ロジックを記述する必要があります。
当記事のサンプルでは、次のケースについて説明しています。
変換前フォーマット | 例 |
---|---|
EEMMdd | 300613 |
↓
変換後フォーマット | 例 |
---|---|
yyyy/MM/dd | 2018/06/13 |
※年号無し和暦6桁を、元号を平成とみなして西暦に変換します。
解説で使用しているサンプルプロジェクトを以下よりダウンロードすることができます。ぜひご活用ください。
convert_AD_JpaneseCalendar.zip
2.動作イメージ
3.実装方法(重点事項のみ解説)
3-1.画面の作成
新規に画面を作成し、必要なコントロールを配置します。
①テキスト
変換前の西暦日付を入力するコントロールです。
②ボタン
②-1
「①テキスト」で入力した日付を、ボタンに表記したフォーマットに変換します。
②-2
ボタンの下にあるラベルの和暦日付を、ボタンに表記したフォーマットに変換します。
※この例では和暦を入力するのではなく、ラベルの固定値を使用しています。
③ラベル
300613:ボタン「②-2」で変換する任意の和暦日付です。
フォーマット結果:②のボタンをクリックして変換した日付を表示します。
3-1-1.画面コントロールの設定
変換前のテキストを、動作イメージ動画のようなダイアログで入力する設定を行います。
「オブジェクト」>「動作設定」から「入力内容」を選択し、「日付・時刻」に設定します。
3-2.ロジックの実装
3-2-1.西暦の年月日から変換(単純な文字列関数)
ボタン②-1をクリックした場合のロジックです。ボタンは5つありますが、例として「yyyy/MM/dd」ボタンの場合を解説します。
処理は、次のとおりです。
「2.フォーマット」処理では、コンポーネントに「文字列関数」「フォーマット」を設定します。
続いて「フォーマット」には、変換したい形式を設定します。
3-2-2.和暦の年月日から変換
ボタン②-2をクリックした場合のロジックです。処理は、次のとおりです。
変換前の和暦日付(6桁の文字列)を取得したら、コンポーネントに「文字列関数」の「一部を取得」を設定し、先頭から2桁ずつ年、月、日に分解します。下図は年の場合ですが、月と日も同様で、それぞれ開始位置を「2」「4」に設定します。
次に、年を西暦に変換します。平成元年は西暦1989年なので、年に1988を加算して西暦を求めます。
続いて、コンポーネント「日時」「作成」で日時データを作成します。西暦に変換した年、分解した月と日を設定し、時、分、秒は0を設定します。
これで西暦として扱えるデータが作成できました。
3-3.画面からのロジック呼び出し
各ボタンに、実行処理として各ロジックを設定します。
以上で実装は完了です。