1

この質問のトピックは、日付と時刻の計算です。

.NETは、他の多くのプラットフォームと同様に、などの何らかの形式の最小離散時間表現に大きく依存していDateTime.Ticksます。ティックは、Int64最大値が約9 *1018のタイプです

.NETクロックが1-JAN-0001から刻々と過ぎ始め、私の大まかな計算に従うと、刻みがに達するまでに約30000年かかりInt64.MaxValueます。

質問は:そのようなオーバーフローに対処するための一般的なアプローチは、来年に起こるとしたらどうなるでしょうか?

4

1 に答える 1

4

多くのCOBOLプログラムに存在するY2Kバグと同様に、ルートをシフトするか、値を拡張する必要があると思います。さて、そのステートメントをより抽象的にするために、彼らがルートをシフトしたとしましょう-それで、それは1-JAN-0001もうないでしょう、それはそうかもしれません1-JAN-1001

それはいくつかの問題を引き起こすでしょう。そして、それがCOBOLでY2Kバグを解決する必要があった2040ため、多くのショップでロールアラウンドする場合、ロールオーバー日を再度変更するか、値を拡張する必要があります。

彼らの場合、値を拡張することは単に4桁の年を使用することを意味しますが、これらのMFプログラムでは、データが常にデータベースに格納されるとは限らず、多くの場合VSAMファイルなどに格納されるため、必ずしも単純ではありません。

だから、これが私が起こると思うことです。コンピューティングがどんどん大きくなり、速くなるにつれて(それでも小さくなります...うーん)、それらは単に値を言うInt64からに拡張しInt128、ルートをそのままにしておくことがわかります。それは私が考えることができる悪影響がゼロになるので、それは最も安全なアプローチでしょう。

于 2013-03-13T17:13:42.650 に答える