uhyorinの日記: VBScriptでDateDiffのループチェック の続き
前回のACさんのコメントをもとに、西暦が2桁までの扱いを行う方法を検討してみた。
どうやらVBScriptではVBやVBAのFormat関数は提供されておらず、FormatDateTime関数で代用せよって感じですな。
ちょっと不便。
cscript 0to100.vbs | more
For intX = 0 to 2010
dateBefore = String(4 - Len(intX), "0") & intX & "/01/01"
Call WScript.Echo("FormatDateTime:" & dateBefore & " -> " & FormatDateTime(dateBefore))
Next
上記VBSの結果を要約すると、
FormatDateTime:0000/01/01 -> 2000/01/01
~
FormatDateTime:0029/01/01 -> 2029/01/01
FormatDateTime:0030/01/01 -> 1930/01/01
~
FormatDateTime:0099/01/01 -> 1999/01/01
FormatDateTime:0100/01/01 -> 100/01/01
ACさんのコメント通り、西暦は3桁から有効のようですな。
あと、西暦が2桁の時の解釈は30を境目に1900年代と2000年代に分かれているのな。この仕様は何年か経ったら変わるのかも。
# 他言語やOS、ミドルウェア(DBサーバー等)によっては扱いが異なっているのかもしれない。(未調査)
----
前回 VBScriptでDateDiffのループチェック
VBScriptでDateDiffのループチェック の続き More ログイン