- ベストアンサー
処理年月の取得
UNIX Pro-Cにて、前月の処理年月を取得する方法 を教えてください。 例えば、2007年3月10日に実行すると、'200702'になります
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Pro-Cってのは知りませんが、標準的なライブラリが使えるとして、 time_t timer; struct tm *today; time(&timer); today = localtime(&timer); で、 today->tm_mon に、*現在の月-1* (3月なら2) が入っているので、 tm_mon が 0(つまり1月)なら年も調整して出力 それ以外なら tm_mon-1 を出力 でいいんじゃないでしょうか? today->tm_mon--; strftime(strbuf, "%Y%m", today); で、うまくいくかもしれませんし、征かないかも知れません。
お礼
うまくいきました。 ありがとうございました。
補足
回答、ありがとうございます。 こんな感じでいけるでしょうか? int main() { char year; char mon; char syori; /************************************/ /* 処理年月設定 */ /************************************/ time_t timer; struct tm *today; /* 現在時間取得 */ time(&timer); /* 現在時刻を構造体に変換 */ today = localtime(&timer); /* 1桁の月の場合、2桁にする */ if( today->tm_mon < 10) { mon=strcat(0,today->tm_mon); } /* 1月の場合は去年にする */ if( today->tm_mon == 0) { year=today->tm_year-1; }else if{ year=today->tm_year; } shori=strcat(year,mon); }