[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シリアル値について』(ジジ)
1900年2月29日のシリアル値は60となります。
1900年は閏年ではないはずですが、なぜこのような
設定になっているのでしょうか。
他の平年の2月29日のシリアル値は存在しません。
「シリアル値」「閏年」「1900/2/29]等で過去ログを
拝見しましたが、答えを見つける事が出来ませんでした。
もし見逃していたらごめんなさい。
よろしくお願いいたします。
閏年とは西暦紀元年数が4で割り切れる年でも100の
倍数の年は400の倍数の年以外は閏年としないで
平年とする。というふうにきおくしています。
(間違えていたらお許しください。)
つまり1900年は4でも100でもわりきれますが
400では割り切れないので、平年という事になると
おもいます。
2004年は4でしか割り切れないので閏年なのです。
言い換えますと紀元年数が
4で割り切れる年は閏年です。
4でも100でも割り切れる年は平年です。
4でも100でも400でも割り切れるとしは閏年です。
2000年がよい例で閏年でした。
横から失礼します。Yosh!です。 ↓こちらに1900年の閏年判定について書かれています。参考にしてください。(Yosh!) [XL2002]Excelで用いている閏年の判定方法 http://support.microsoft.com/default.aspx?scid=kb;JA;118923
(ジジ)さんへの回答者は誰なんでしょうか?
↑と言う私もHNを入れ忘れました。(^_^;)(ヤー坊)
ジジさんの見解が正しいです。1900年は閏年ではありません。 しかし、都合上エクセル(と、その他の表計算ソフト?)では1900年を 閏年として判定しているという事ですね。(Yosh!)
(Yosh!)さん、有難う御座いました! 取り敢えずこれでゆっくり眠れます。(イエローヒロ)
今回の質問とはあまり関係ないかもしれませんが、VBAのことも書いてみようと思います じつはVBAでは1900/2/29はありません。
下記のマクロはセルA1の値を日付けに変換し、メッセージボックスに表示します 標準モジュールにコピーしてください
Sub test() MsgBox CDate(Range("A1").Value) End Sub
セルA1に 60 を入力し、書式設定を日付けにすると、セルには1900/2/29と表示されますが、 マクロを実行するとメッセージボックスには 1900/2/28 と表示されると思います A1の値を 1 にして実行すると、1899/12/31と表示されます
つまり、 ワークシート上では 1900/1/1 を 1 として 1900/2/29 で 60 になりますが、 VBAでは 1899/12/31 を 1 として 1900/2/28 で 60 になるのです みなさん知ってました? (りな)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.