void refresh_next_alarm_text(void) { int alarm_id = get_next_alarm(s_alarms); // schedule the winner if(alarm_id>=0) { time_t timestamp = alarm_get_time_of_wakeup(&s_alarms[alarm_id]); struct tm *t = localtime(×tamp); if(s_show_remaining ) { time_t now = time(NULL); time_t diff = timestamp-now; snprintf(s_next_alarm_text,sizeof(s_next_alarm_text),"in %02dh,%02dm",(int)diff/3600,(int)(diff/60)%60); } else { if(clock_is_24h_style()) snprintf(s_next_alarm_text,sizeof(s_next_alarm_text),"%02d.%02d %02d:%02d",t->tm_mday, t->tm_mon+1,t->tm_hour,t->tm_min); else { int temp_hour; bool is_am; convert_24_to_12(t->tm_hour, &temp_hour, &is_am); snprintf(s_next_alarm_text,sizeof(s_next_alarm_text),"%02d.%02d %02d:%02d %s",t->tm_mday, t->tm_mon+1,temp_hour,t->tm_min,is_am?"AM":"PM"); } } alarm_phone_send_pin(&s_alarms[alarm_id]); } else { snprintf(s_next_alarm_text,sizeof(s_next_alarm_text),"---"); } }
static void update_text(struct tm *t) { if(clock_is_24h_style()) snprintf(output_text, sizeof(output_text), "%02d:%02d",t->tm_hour,t->tm_min); else { int hour; bool is_am; convert_24_to_12(t->tm_hour, &hour, &is_am); snprintf(output_text, sizeof(output_text), "%02d:%02d %s",hour,t->tm_min,is_am?"AM":"PM"); } }