[H8-ML(4778)] Re: H8/3664 にて日付演算
From: hamayan <hamayan@xxxxxxxxxxxxxxxx>
Date: 2004年05月12日(水)09時11分41秒
hamayan です。

FUJIHARA> もちろん、間に、':' や '/' や '-' がある場合には使えません。
FUJIHARA> 
FUJIHARA> さらに一般化すると、
FUJIHARA> 
FUJIHARA> char times[] = "00:00:00";
FUJIHARA> char limit[] = "23:59:59";
FUJIHARA> int  index[] = {7, 6, 4, 3, 1, 0, -1};
FUJIHARA> int i;
FUJIHARA> 
FUJIHARA> /* このあたりで初期化 */
FUJIHARA> 
FUJIHARA> times[index[0]]++;
FUJIHARA> for(i = 0; index[i] >= 0; i++)
FUJIHARA> {
FUJIHARA>   if (times[index[i]] > limit[index[i]])
FUJIHARA>   {
FUJIHARA>      times[index[i]] = '0';
FUJIHARA>      /* ここがいやらしい */
FUJIHARA>      if (index[i + 1])
FUJIHARA>         times[index[i + 1]]++;
FUJIHARA>    }
FUJIHARA> }
FUJIHARA> 
FUJIHARA> なんてできことはできますが。このあたりはやりすぎでしょう。

そうそう、ループ処理も考えてみると面白いですね。



FUJIHARA> これ、もともとの発想の違いは、
FUJIHARA> 「正しい形を保持しつつ処理する」か、「処理をしたあとで、正しい形に
FUJIHARA> なおす」かの違いのような気もします。

私の場合は、「誰の為の時刻表現なのか?」と言う部分に着目します。
2004/5/12 09:15:00
と表現するのはあくまでも人間の為で、必ずUIが存在します。
でもこの表現は、コンピューターにとっては有り難迷惑です。逆に1970年からの通算
秒を人間が見せられても、???と言う事になります。

内部的に通算秒で処理するか、ASCIIで西暦表現で処理するか、または併用す
るかは、システムを設計する人に決めてもらいましょう。
だから、私のだらだらっとしたプログラムは、「世の中にはそんな人も居る!」
程度の認識でね、お願いします。
スレッド概略
[表示中](起点)


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


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