質問する
0

日付が9957年6月26日までしか数えられない?

質問日 2016-03-21 11:58:33 +0100

yoshida のGravatar画像

updated 2016-03-21 12:02:04 +0100

バージョン: 5.1.0.3の Calcを使っています。

日付が不明な場合は9999年1月1日と入力してある紙データをCalcで整理していて困っています。 9999年1月1日を覚えてくれません。一旦保存して開き直すと9999年12月31日になってしまいます。

いろいろ試してみたところ9957年6月26日を超えると9999年12月31日になってしまうようです。 これは仕様なのでしょうか?

試したことは、 各セルに数値で2942936,2942937,2942938,2942939,2942940と入力してから、それらのセルの書式設定を日付に変更すると9957年6月25日,9957年6月26日,9957年6月27日,9957年6月28日,9957年6月29日と表示されます。

ここで保存してファイルを閉じます。 最近使用したファイルで同じファイルを選んで開くと、9957年6月25日,9957年6月26日,9999年12月31日,9999年12月31日,9999年12月31日になっています。ここでセルの書式設定を数に変更すると2942936,2942937,2958465,2958465,2958465 に変化していました。

edit retag flag offensive close merge delete

1 Answer

0

回答日 2016-03-25 21:09:18 +0100

himajin100000 のGravatar画像

updated 2016-05-08 18:44:29 +0100

意図的な仕様と思われる。(少なくとも当時のコードの設計者にとっては)
(「その仕様で良いのか?」という疑問と「そもそもMAX_DAYSに指定された数値はどのような根拠で算出されたものなのか?」という疑問は自分にありつつ)

Maximum date value in Base is 27/06/9957

https://bugs.documentfoundation.org/s...

と共通で利用されているコードが原因と思われる。

簡単に言うと、

https://docs.libreoffice.org/tools/ht...

で何故か定義されているMAX_DAYS

http://opengrok.libreoffice.org/xref/...

選べる日付の初期値の一つ1899-12-30 の差分を調べるとそのへんの数値になる

あまり役に立たないかもしれない読み物:

http://local.joelonsoftware.com/wiki/...

どうでもいいけど、解答欄で採用されている記法の文法がよくわからん。XHTMLで書きたい…

edit flag offensive delete link もっと

Comments

ソースコードレベルまで調べた有益な回答ありがとうございます。

調査結果を鑑みると端的にいうと仕様なのではないかと思われますが、可能なら「仕様と思われる」と冒頭に書き足していただけないでしょうか。書いていただいたら、問題は解決にしてよいと思います。

なお回答欄の書式は変形Markdownっぽいですね。

Naruhiko のGravatar画像Naruhiko ( 2016-05-08 15:26:43 +0100 )edit
himajin100000 のGravatar画像himajin100000 ( 2016-08-30 13:07:58 +0100 )edit
ログイン/サインアップして回答する

質問ツール

2 followers

Stats

Asked: 2016-03-21 11:58:33 +0100

Seen: 210 times

Last updated: May 08 '16