4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

【小技】日付のフォーマット

Go down

【小技】日付のフォーマット Empty 【小技】日付のフォーマット

投稿 by miyako 2016-12-15, 1:10 pm

たとえば,"4281203"というコードがあって,
それを"平成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)はいろいろな文字列処理ができてとっても便利です。pig

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可