緑の中に

緑の中に
国立天文台

6/02/2020

プログラム上の特異日?

プログラムに関しての特異日?


 
毎日観測したデータをグラフ表示するプログラムを作っています。

20分間隔で採取したデータです。日にち、時、観測値をファイルに記録しています。

昨日と現在のデータをグラフにします。
ここで、少しややこしいことがあります。それは、本日において昨日はどのように検索すると良いのでしょうか?

「本日の日付けー1」で良さそうです。しかし、これでは問題が発生します。
昨日のデータは本日の(日付-1)の論理プログラムを作りました。


1-1=0となり、0日なる日付日はおかしなこととなりました。

先月の最終日付が30日の場合と31日の場合があります。

すると、月日の何月かも知る必要があります。

仮に本日が1日と仮定した場合は、1-1=0となります。
1-1=30  または 1-1=31  となる必要があります。

本日の日付はプログラムを通じてパソコンのシステムから取得できます。簡単です。

現在月-1=先月 よりこの先月が大の月、小の月に応じて「31]「30」と決定すれば解決します。

仮に現在が1月の場合は 1-1=0月となります。
この場合は12月となるようにすれば問題ありません。

以上の事を考慮してプログラムは完成しました。

私は 「1」「30」「31」 を特異日と呼ぶことにしました。

2月28日も考える必要があります。

実際にプログラミングした後に、この日にちが到来する事が待ち遠しくなりました。
来年の2月28日、3月1日まで待ってその日にプログラミングすれば一番でしょう。

そんな訳にも行きません。プログラム中にデバッグ用に分岐を入れ込みました。
おそらく、現実にプログラムを作る方は何か良い方法があるのでしょう。
OS側で現在日時を高速に変更する?