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で西暦表現で処理するか、または併用す るかは、システムを設計する人に決めてもらいましょう。 だから、私のだらだらっとしたプログラムは、「世の中にはそんな人も居る!」 程度の認識でね、お願いします。