こんにちは、CgetTime()
で返す関数を実行しようとしています。uint16_t
文字の配列を正常に取得できるようになりました
これは、文字の配列を出力するための私のコードです。
今日は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;}