今、複数のcsv形式のファイルをmdbのファイルにマージするプログラムを作っています(読み込み履歴&二重読み込み防止機能付)。
その中で、日付の部分の変換に苦戦しています。
CSV形式では
2004/09/12
のように保存されているのですが、これをCTimeの形式で格納させたいのですが・・・
①文字列で
2004
09
12
を認識させる。
②それぞれをint型に変換
③CTime.***(必要な項目)に格納
という方法になるのでしょうか?
文字列"yy/mm/dd" → CTime
と、一発で変換してくれるような関数や、上記以外のよりよい解決法がありましたらご教授いただけないでしょうか?
宜しくお願いします。
CTimeのコンストラクタとsscanf()でできるのでは?
CTime( int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST = -1 );
int year, month, day;
sscanf("2004/09/12", " %d/%d/%d", &year, &month, &day);
CTime c_time(year, month, day, 0, 0, 0);
その方法もあるのですが・・・実は、すでに宣言されているCTimeオブジェクトに、yy/mm/ddを渡したいんです。
RAPTさんの方法だと、宣言するときに値をいれないとだめですよね?
そうすると・・・
CTime *c_time; //すでに宣言されているもの
int year, month, day;
sscanf("2004/09/12", " %d/%d/%d", &year, &month, &day);
CTime temp_c_time(year, month, day, 0, 0, 0);
c_time = &temp_c_time;
のように、ポインタで渡す方法しかないんでしょうか・・・?
どうも知識が中途半端で・・・的外れなこといっていたらごめんなさい。
宜しくお願いします。
何も考えずに,
CTime c_time;
c_time = CTime(year, month, day, 0, 0, 0);
で良いと思いますが。
ありがとうございます。
解決できました。
後はAccessのMDBへの書き込みの部分で奮闘すれば・・・(^^;
RAPTさん、YuOさん、ありがとうございました。
ツイート | ![]() |