int main(int argc, char *argv[]) { int c; int is_set = 0; /* 是否是设置时间标志 */ char *new_date = NULL; static struct option const long_options[] = { {"help", 0, NULL, 'h'}, {"date", 1, NULL, 'd'}, {NULL, 0, NULL, 0} }; exit_status = 0; program_name = argv[0]; while((c = getopt_long(argc, argv, "hH", long_options, NULL)) != -1) { switch(c) { case 'h': case 'H': date_usage_exit(EXIT_SUCESS); break; case 'd': if (optarg) { new_date=optarg; is_set = 1; } break; default: date_usage_exit(EXIT_FAILURE); break; } } if(optind != argc) date_usage_exit(1); if(is_set && new_date != NULL) exit_status = set_sys_time(new_date); else exit_status = pr_sys_time(); if(exit_status != 0) fprintf(stderr, "[%s] error with errno[%d]\n", program_name, exit_status); exit(exit_status); }
unsigned char nav_datetime(unsigned char key) { time_t t; switch (key) { case ENTER: t = mktime2(&tm4edit); /* if(t != -1) { tl = (unsigned long long)t * 1000; if(set_sys_time((uint64_t)tl) == 0) { char str[64]; static struct tm tm1; t1 = sys_time(); format_str(str, 64, "%ld, %llx, %llx", t, t1, tl); OLED_clrLine(4 * 9, 6 * 9); OLED_puts(0, 5 * 9, 0xff, font6x9, str); parse_time2(t, &tm1); format_str(str, 64, "%02u/%02u/%02u %02u:%02u:%02u", tm1.tm_mday, tm1.tm_mon + 1, getyear2(tm1.tm_year), tm1.tm_hour, tm1.tm_min, tm1.tm_sec); OLED_puts(0, 4 * 9, 0xff, font6x9, str); //OLED_puts(0, 5 * 9, 0xff, font6x9, "set_sys_time failed"); return 0; } } */ set_sys_time((unsigned long long)t * 1000); case ESC: if (active.menu != &root_menu) active = *(--mstack_ptr); // POP_MENU; set_statusbar_item(1, datime_prev_item, NULL); return MNU_CLR_ALL; default: (tm_edit.action)(get_digit(key)); break; } return 0; }