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(&timestamp);
    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),"---");
  }
}
Beispiel #2
0
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");
  }
}