投稿

ラベル(和暦)が付いた投稿を表示しています

和暦の新元号対応 VB6 / Delphi / VBA / .net

イメージ
新元号に向けて和暦対応をチェック OSから情報を取得していれば 2019/5/1以降の和暦が「??」となるのが正しく、決定後レジストリへ??の部分へ登録されれば、そのまま表示される ※取得方法が違うと、表現も変わる可能性があるので参考までに VB6 - 未対応 遂にvb6終了のきっかけになるか~ でも古いコードの修正頼まれたりするの見てると、何故か自前で書いてるの多いんだよなぁ Delphi - 対応済 2007 や XE系 といくつか試したが、元々OSから取得しているみたい VBA (Microsoft Office 2013, 2016) - 未対応 決定後にアップデートで対応するんだろうけど、どれくらい古いバージョンまで対応するのだろうか .net (Visual Studio 2017 C# .net v4で確認) - 対応済 これもOSから取得しているようです。他のバージョンはどうなんだろう

javascript で文字列中の和暦を西暦へ書き換え

DBに和暦を記入する年寄りがいるので、ツールチップ内だけ西暦表示させるのに、javascript の replace 正規表現で、置換文字列を演算 function WarekiToSeireki(s){ function WarekiToSeirekiSub(match, gengou/* $1 */, wareki/* $2 */, nen/* $3 */, offset, string){ if(wareki == '元'){ wareki = 1; } if( gengou.match(/(Z|Z|ZZ)/i) ){ // 新元号 return (Number(wareki) + 2018) + nen; }else if( gengou.match(/(H|平|平成)/i) ){ return (Number(wareki) + 1988) + nen; }else if( gengou.match(/S|昭|昭和/i) ){ return (Number(wareki) + 1925) + nen; }else if( gengou.match(/T|大|大正/i) ){ return (Number(wareki) + 1911) + nen; }else if( gengou.match(/M|明|明治/i) ){ return (Number(wareki) + 1867) + nen; } } return s.replace(/(H|平|平成|S|昭|昭和|T|大|大正|M|明|明治)([0-9]+|元)(\/|年)/gi, WarekiToSeirekiSub); } 和暦から西暦は、月日は必要ないが、逆は年の途中で切り替わるので月日が必要になる