cocos2d-x で時間を扱う
はじめに
- cocos2d-x で時間処理をしたかったので、 time.h を使う。
- 勘で "CCDate" でググったら、ライブラリ作っている人はいて、中で time.h 使っていたので、とりあえずこれでやってみる。
// 時間計算ライブラリの読み込み #include <time.h> // UNIX時間型 time_t time; // UNIX時間で現在時 time_t now = time(NULL); // UNIX時間型同士の差の秒数を取得 time_t t1 = time(NULL); time_t t2 = time(NULL); double diff = difftime(t1, t2); // UNIX時間型から、時間を表す構造体 struct tm の作成 time_t t = time(NULL); struct tm* date = localtime(t); /** struct tm の構造 struct tm { int tm_sec; // 秒 int tm_min; // 分 int tm_hour; // 時 int tm_mday; // 日 int tm_mon; // 月( 1月=0 ) int tm_year; // 西暦年 - 1900 int tm_wday; // 曜日( 日=0 ) int tm_yday; // 日(年を通して) int tm_isdst; // サマータイムフラグ }; */ // struct tm から time_t の作成 struct tm date; /* 2014/01/01 12:30:00 を設定 */ memset((void *)&date, '\0', sizeof(date)); /* 初期化 */ date.tm_year = 114; /* 年[1900年から起算] */ date.tm_mon = 0; /* 月[0-11] */ date.tm_mday = 1; /* 日[1-31] */ date.tm_hour = 12; /* 時[0-23] */ date.tm_min = 30; /* 分[0-59] */ date.tm_sec = 0; /* 秒[0-61]閏秒考慮 */ time_t t = mktime(&date);