コード例 #1
0
ファイル: date.c プロジェクト: lufb/code
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);
}
コード例 #2
0
ファイル: menu.c プロジェクト: MaxGekk/ZigZag
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;
}