【小技】日付のフォーマット
【小技】日付のフォーマット
たとえば,"4281203"というコードがあって,
それを"平成28年12月 3日"のように整形したい場合,
どのようなコードを書けば良いでしょうか。
ポイント:
1桁目は元号コードです。
2~3桁目は年,4~5桁目は月,6~7桁目は日です。
ヒトケタの年月日はスペース記号で埋めるものとします。
日付の有効性は考慮しないものとします。
解答例:
つい,Positionやループ条件を使いたくなるかもしれませんが,
正規表現(Match regex)はいろいろな文字列処理ができてとっても便利です。
それを"平成28年12月 3日"のように整形したい場合,
どのようなコードを書けば良いでしょうか。
ポイント:
1桁目は元号コードです。
2~3桁目は年,4~5桁目は月,6~7桁目は日です。
ヒトケタの年月日はスペース記号で埋めるものとします。
日付の有効性は考慮しないものとします。
解答例:
- Code:
C_TEXT($1;$code)
C_TEXT($0;$date)
$code:=$1
ARRAY LONGINT($pos;0)
ARRAY LONGINT($len;0)
If (Match regex("(\\d)(\\d{2})(\\d{2})(\\d{2})";$code;1;$pos;$len))
$date:=Choose(Num(Substring($code;$pos{1};$len{1}));"";"大正";"明治";"昭和";"平成";"")+\
String(Num(Substring($code;$pos{2};$len{2}));"^^年")+\
String(Num(Substring($code;$pos{3};$len{3}));"^^月")+\
String(Num(Substring($code;$pos{4};$len{4}));"^^日")
End if
$0:=$date
つい,Positionやループ条件を使いたくなるかもしれませんが,
正規表現(Match regex)はいろいろな文字列処理ができてとっても便利です。

miyako- 投稿数 : 468
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可
|
|