タイトル : Re^5: 日付関数DateValueについて 投稿日 : 2011/01/09(Sun) 08:53 投稿者 : 花ちゃん
> ネット情報は個人の判断で、と言うことでしょうが、下記記事からです。 > 確かにExcel関連らしいです。 > www3.tokai.or.jp/excel/kansu/hiduke.htm VB6.0 を使っているならVB6.0 のヘルプ(MSDN)を見ましょう。 Excel の関数を使っているならExcelの関数のヘルプをVBAならVBAのヘルプを参照すべき ではないでしょうか? 又、バージョンによっても仕様が変更される場合もありますので、正しい見方をしないと。 > > 違いますよ、 > VB6では1900年が閏年と判断しない重大なバグあることでした。 私が違いますよと言ったのは、貴方の発言の >シリアル値=DateValue(ymd)の値-1と計算すればよかったようです。 の投稿に対してで、VB6.0 のバグとは言ってませんし、どこにも書いていないでしょう。 (この記事を見た人が誤解されると困るので敢えてもう一度) 貴方が、バグと言い切るならその根拠を示さないと。 うるう年の基準には、誤差を取り除くため 4で割り切れ400 で割り切れない年は うるう年としないという規定により、1900 年はうるう年ではありませんので、VB6.0 の 方が正しいのであってバグではありません。 Excel でも、Excel 95 までのバージョンの Excel が日付データとして扱えるのは 1900 〜 2078 年であるため、うるう年に関する 100 および 400 の除外規則が適用される 年は 1900 年だけです。ただし Excel では、他のプログラム(Lotus 1-2-3 や Multiplan 等)との互換性のため、1900 年をうるう年として扱います。とあるように、バグではなく 仕様と言うべきかと思います。 但し、Excel では、1900/2/29 が存在すると言う事とExcel 2000等では 1900 年 3 月 1日 までの日付の曜日を計算する場合、関数は、誤った結果を返すと言う矛盾は生じますが。 (Excel でも1900/3/1 以前の曜日を求める必要があるならシステムの日付を使って独自に 計算すれば正しい曜日が得られるし、1900/3/1 以降なら問題は発生しない。) 私の回答に信憑性がないにしても先に紹介した下記、MS のサイトの記事は、今一度 よく読んでおいて下さい。 うるう年を判定する方法 http://support.microsoft.com/kb/214019/ja 出来れば原文(英文)を http://support.microsoft.com/kb/214326/ja |