我刚开始制作鹅卵石表盘,我想做一个倒计时计时器,它可以计算一天还剩多少小时,然后每天凌晨 12 点重新开始。
问题是我想不出一种方法来正确显示数学:当前时间减去 24 小时,然后在手表上显示(包括 H:M 等小时和分钟)。
// Time functions
static void update_time() {
// Get a tm structure
time_t temp = time(NULL);
struct tm *tick_time = localtime(&temp);
double munistime;
// Create a long-lived buffer
static char buffer[] = "00:00:00";
// Write the current hours and minutes into the buffer
if(clock_is_24h_style() == true) {
// Use 24 hour format
strftime(buffer, sizeof("00:00:00"), "%H:%M:%S", tick_time);
munistime = 24.0 - 19.0;
} else {
// Use 12 hour format
strftime(buffer, sizeof("00:00:00"), "%I:%M:%S", tick_time);
}
// Display this time on the TextLayer
text_layer_set_text(s_time_layer, buffer);
}
static void tick_handler(struct tm *tick_time, TimeUnits units_changed) {
update_time();
}
// Set the count from the start of the day
Static void update_countdown () {
}
// Window Functions
static void main_window_load(Window *window) {
// Create time TextLayer
s_time_layer = text_layer_create(GRect(0, 130, 150,50));
text_layer_set_background_color(s_time_layer, GColorClear);
text_layer_set_text_color(s_time_layer, GColorBlack);
text_layer_set_text(s_time_layer, "00:00:00");
// Improve the layout to be more like a watchface
text_layer_set_font(s_time_layer, fonts_get_system_font(FONT_KEY_BITHAM_30_BLACK));
text_layer_set_text_alignment(s_time_layer, GTextAlignmentCenter);
// Creates A count Timer Layer
s_countdown_layer = text_layer_create(GRect(0, 40, 150, 50));
text_layer_set_background_color(s_countdown_layer, GColorBlack);
text_layer_set_text_color(s_countdown_layer, GColorWhite);
text_layer_set_text(s_countdown_layer, "00:00:00");
text_layer_set_text_alignment(s_countdown_layer, GTextAlignmentCenter);
text_layer_set_font(s_countdown_layer,fonts_get_system_font(FONT_KEY_GOTHIC_28));
// Add it as a child layer to the Window's root layer
layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_time_layer));
layer_add_child(window_get_root_layer(window),text_layer_get_layer(s_countdown_layer));
update_time();
}