パスワードを忘れた? アカウント作成
6019466 journal
日記

uhyorinの日記: VBScriptでDateDiffのループチェック の続き

日記 by uhyorin

前回の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のループチェック

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...