1

こんにちは、CgetTime()で返す関数を実行しようとしています。uint16_t

文字の配列を正常に取得できるようになりました

これは、文字の配列を出力するための私のコードです。

今日はDec 9 2014出力が091214

では、どうすれば出力をuint16_t型にすることができますか?

この場合、タイプの場合はそのままに"0"しておくことができますか?091214uint16_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;}
4

1 に答える 1