51单片机的闹钟程序问题,IF语句的条件表达式该如何写呢?内详

2024-12-14 06:25:07
推荐回答(3个)
回答1:

C语言时间计数从1970-1-1始。 time() 函数返回 time_t 就是这个计数。
你若会 2011年01月10日10点钟 转 time_t 后面 用 它作时间 比较 就很简单。
设一个时间标志 flag=0, 当时间等于 2011年01月10日10点钟 flag=1。
如果 关掉按键 按了,则 flag=0
flag==1 beep, 否则 不响。
==============================
time_t rawtime;
struct tm * target_time;
time_t t_end,t_now;
/* get current timeinfo and modify it to the user's choice */
time ( &rawtime );
target_time = localtime ( &rawtime ); // time_t to tm
// time struc and to time_t
target_time->tm_year = 2011 - 1900;
target_time->tm_mon= 1 - 1; // month - 1
target_time->tm_mday = 10 ; // day
target_time->tm_hour = 10 ; // hour
target_time->tm_min = 1 ;
target_time->tm_sec = 1 ;
t_end = mktime (target_time);
// t_end 就是 2011年01月10日10点 时间计数
t_now = time(NULL); // 现在时间计数
=============
若用条件语句:
if (年 > 2011) goto Lab;
if ( (年 == 2011) && (月> 1)) goto Lab;
if ( (年 == 2011) && (月== 1) && (日 >10)) goto Lab;
if ((年 == 2011) && (月== 1) && (日 == 10) && (时 > 10)) goto Lab;
继续计时
Lab:;

回答2:

可以写成 if (......){.......}
else if (.....) {.......}
....
....
else {........}
的格式,就可以用于判断不同的情况了

回答3:

用循环语句吧,将其作为出口