藤原です。 そうですね、間違えてましたね。 DateTimeString[ SECOND_0 ]++; if( DateTimeString[ SECOND_0 ] > '9' ) { DateTimeString[ SECOND_0 ] = '0'; DateTimeString[ SECOND_10 ]++; } if( DateTimeString[ SECOND_10 ] > '5' ) { DateTimeString[ SECOND_10 ] = '0'; DateTimeString[ MINUTES_0 ]++; } です。 と、これだけではなんなので、 char times[7]; char limit[7] = "235959"; int i; /* このあたりで初期化 */ times[5]++; for(i = 5; i >= 0; i--) { if (times[i] > limit[i]) { times[i] = '0'; /* ここがいやらしい */ if (i != 0) times[i - 1]++; } } とか。 もちろん、間に、':' や '/' や '-' がある場合には使えません。 さらに一般化すると、 char times[] = "00:00:00"; char limit[] = "23:59:59"; int index[] = {7, 6, 4, 3, 1, 0, -1}; int i; /* このあたりで初期化 */ times[index[0]]++; for(i = 0; index[i] >= 0; i++) { if (times[index[i]] > limit[index[i]]) { times[index[i]] = '0'; /* ここがいやらしい */ if (index[i + 1]) times[index[i + 1]]++; } } なんてできことはできますが。このあたりはやりすぎでしょう。 これ、もともとの発想の違いは、 「正しい形を保持しつつ処理する」か、「処理をしたあとで、正しい形に なおす」かの違いのような気もします。 お察しの通り、私は、「処理をする」→「つじつまを合わせる」という 流れです。そうすると、それぞれ独立して検証できるので。 そもそも、条件が複数重なると自沈する方ですから。 -- _/ -- Last 2251 hours until ATHENS 2004 Olympic Games ----------------- _/ FUJIHARA Keiichi _/ E-Mail : keiichi@xxxxxxxxxxxxx <or> nagi@xxxxxxxxxxxxxxx _/ URL : http://www.keiichi.fujihara.name/ ----------------------------------------------+----- Luna Phase 22.65 -- PGP FingerPrint = 7CC3 4F95 8CC7 87D3 7178 C348 CD65 7F08 D68F 69F6