[H8-ML(4760)] RE:H8/3664にて日付演算
From: "Hirashita" <iced@xxxxxxxxxxxxxxx>
Date: 2004年05月11日(火)18時34分39秒
ひやしたです。

>手っ取り早くmktime()およびlocaltime()を利用しようと思っているのですが
>あっさりROM領域をオーバーしてしまい困っています.

テーブルを使うのはどーでしょうか?
あまり深く考えていないので外しているかもしれませんが、
各月頭のtime_t値(?)のテーブルが有れば、うるう年とか深く考えずに比較的簡単に求められますよね?

一日の秒数変化しないわけですから、テーブルが大きすぎる場合には
各月頭の(例えば)2000/1/1からの経過日数(short型)のテーブルにする、とか
それでも大きければ年頭の経過日数(short型)と各月の日数のテーブル(char型)の構造体テーブルにするとか、
テーブルを最小にしたければ月の日数は28〜31なので29日を基準にした4ビットにするとか・・・
計算は少々面倒ですが、これだけの情報で任意の年月日の00:00:00のtime_t値は計算できますよね。
time_t値から年月日時分秒を逆算するにはループを回す必要が有ると思いますが、
それもアルゴリズム次第でかなり高速に求めらると思いますが、いかがでしょうか。

※呼び方を知らないのでtime_t値なんて言葉を使いましたが、お考えの、それです。(^_^;


スレッド概略
[4750(R)](起点)
 └[4759(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]