Привет Я пытаюсь сделать getTime()
функцию, которая возвращает uint16_t
в C.GetTime() функция, которая возвращает значение uint16_t в C
я могу успешно получить массив символов теперь
Вот мой код для вывода массива символов.
Say сегодня Dec 9 2014
выход будет 091214
Так как я могу сделать выводить uint16_t
типа?
В этом случае я могу сохранить "0"
в 091214
, если это тип uint16_t
?
char *getT(){
struct tm *tm;
time_t t;
static char str_date[10];
t = time(NULL);
tm = localtime(&t);
strftime(str_date, sizeof(str_date), "%d%m%y", tm);
return str_date;}
и есть другой подход, который я изменил из кода, который я нашел он-лайн.
это один возвращает сумму 9+12+14
....
uint16_t getD(){
struct tm *tm_time;
time_t ti;
//const time_t create_time;
uint16_t t, d;
ti = time(NULL);
tm_time = localtime(&ti);
t = (tm_time->tm_sec >> 1) + (tm_time->tm_min << 5) + (tm_time->tm_hour << 11);
d = (tm_time->tm_mday>>1) + ((tm_time->tm_mon+1) << 5) + ((tm_time->tm_year-80) << 9);
printf("%d %d %d %d \n",d,tm_time->tm_mday>>1,tm_time->tm_mon<<5,(tm_time->tm_year-80)<<9);
return d;}
Можете ли вы объяснить, что вам это нужно и как вы планируете его использовать? Похоже, что это может быть проблема XY. –
Итак, это часть моего задания, которое должно получить отметку времени для файла. И как инструктор, определенный в файле 'struct',' creation_time' является 'uint16_t'. Мой план - 'entry.creation_time = getTime(); 'Вот почему я хочу, чтобы возвращаемое значение getTime() было uint16_t. Благодарю. – Shanji
Биты 0-4: День месяца, действительный диапазон значений 1-31 включительно. Биты 5-8: Месяц года, 1 = январь, допустимый диапазон значений 1-12 включительно. Биты 9-15: количество лет с 1980 года, допустимый диапазон значений 0- = включительно 127 (1980-2107). и это требование для отметки времени. Надеюсь, я не получил uint16_t неправильно ... – Shanji