私は現在、私がしたい、それの要旨は非常に単純であるC.に目覚まし時計を作るに取り組んでいます:アラームクロックを実装するためにユーザー入力を渡すにはどうすればよいですか?
- は、ローカルにそれを比較
- 希望アラーム時刻ためのユーザ入力に取ります時間
- デクリメント秒タイマー、そしてそれはしかし、アラーム
に到達したプリントは、私はいくつかの問題を抱えているとしばらく今の立ち往生されています。ここに私がこれまで持っているものがあります:
int u_input(int* uhour, int* uminute, int* usecond);
void sc_alarm();
int main(int argc, char *argv[])
{
int uhour, uminute, usecond;
u_input(&uhour, &uminute, &usecond);
sc_alarm(uhour, uminute, usecond);
}
int u_input(int* uhour, int* uminute, int* usecond)
{
printf("Enter H M S:");
scanf("%d %d %d", uhour, uminute, usecond);
}
void sc_alarm(int uhour, int uminute, int usecond)
{
struct tm *tm;
time_t ctime;
ctime = time(NULL);
tm = localtime(&ctime);
int difference, alarm_total, local_time_total;
int chour = tm->tm_hour;
int cminute = tm->tm_min;
int csecond = tm->tm_sec;
difference = alarm_total - local_time_total;
alarm_total = (uhour * 3600) + (uminute * 60) + usecond;
local_time_total = (chour * 3600) + (cminute * 60) + csecond;
do
{
printf("Time left: %d seconds\n",difference);
difference--;
sleep(1);
}
while(difference > 0);
printf("Alarm!\n");
}
ローカルタイムとアラームタイムを比較しない理由は、アラームで夏時間の問題が発生する可能性があるからです。 – dvhh