0

システム時刻を (24 時間) 時間と分で取得し、HH:MM としてフォーマットして配列に格納するプログラムの要素に取り組んでいます。分も1ずつ増やす必要があります。これは私のコードです:

 strftime (timeh,10,"%H:",formtime);
 strftime (timem,10,"%M",formtime);
 timem1 = atoi(timem);
 ++timem1;
 itoa(timem1, timem, 10);
 strcpy(time, timeh);
 strcat(time, timem);

timeを単に出力してテストしたところ、これが printf("%s", time): 5 の出力でした (時刻は午前 1 時 4 分でした)。

個別に、時間は何も表示されず (午前 1 時 8 分)、分は正しく印刷されます。

配列の時刻が適切にフォーマットされた HH:MM 時刻を保持するようにするにはどうすればよいですか?

ご提案いただきありがとうございます

4

2 に答える 2

2

私があなたの質問を正しく読んだ場合、あなたはそれを行うことができるはずです:

formtime->tm_min++; /* Additional checks needed. */
strftime(time, 10, "%H:%M", formtime);
于 2012-10-13T06:14:29.063 に答える
1

分を直接調整しようとして正時に折り返すことを心配するよりも、書式設定のために struct tm に分割する前に時間を 60 秒調整する必要があります。

time_t now;
time(&now);
now += 60;
strftime(buffer, sizeof(buffer), "%H:%M", localtime(&now));

現在の時刻を取得するために使用されるtime標準関数と競合するため、配列を呼び出すことはお勧めできません。time

于 2012-10-13T06:28:47.803 に答える