質問させていただきます。
COleDateTime dtCurrent = COleDateTime::GetCurrentTime();
CString csNowDate = dtCurrent.Format(_T("%Y%m・・・"));
これで現在の日付等は取得できますが、お聞きしたいのはjavaのカレンダークラスみたいなクラスはないのかということです。
調べ方が悪いのか、見つからなくて困っています。宜しくお願い致します。
> javaのカレンダークラス
そのものズバリはないと思います。
あった方が便利だと思うなら作ってしまいましょう。
現在日付の取得以外に何がしたいのかを具体的に書いてもらえれば、個別の実現方法はアドバイスできると思います。
aetosさん、コメントありがとうございます。
今、ダイアログベースで簡易掲示板的なもの(アバウトですみません)を作っています。
設定画面で、現在から何か月前までのものを表示できるようになっていて、それ以前のものは表示できない仕組みです。設定した値はメンバに持ってて、theApp.m_nListMonthで取ってこれます。(3が月前までなら3が入っている)
それで、掲示板.xml(作成日付のディレクトリの中にある。例200907)を読み込むときに
COleDateTime dtCurrent = COleDateTime::GetCurrentTime();
CString csNowDate = dtCurrent.Format(_T("%Y%m")); // 現在の日付(yyyymm)
int nOutPutNoticeDate = StrToInt(csNowDate) - theApp.m_nListMonth + 1;
CINetHttp inethttp((LPCTSTR)theApp.m_csHost);
CString csResult;
for( int i=0; i<=theApp.m_nListMonth-1; i++ )
{
CString csOutPutNoticeDate = _T("");
csOutPutNoticeDate.Format( _T("%d") , nOutPutNoticeDate+i );
if (!inethttp.GetXml( theApp.m_csUserId + ( _T("\\")+csOutPutNoticeDate+_T("\\notice") ), _T(""), csResult))
{
csRetMsg = csResult;
return FALSE;
}
〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜
}
としていたのですが、これだと、もし今の日付が201001だったりしたときにダメになってしまう事に気付きました。そこで、javaみたいなカレンダークラスがあればと思った次第です。
うまく文章かけなくてわかりにくくてすみません(汗)意図していることが伝わればいいのですが・・・・・・
宜しくお願い致します。
よくわからないんだけど、今日からnカ月前の月を計算したいってこと?
// COleDateTime dtCurrent = COleDateTime::GetCurrentTime();
COleDateTime dtCurrent(2010, 1, 1, 0, 0, 0);//2010年1月1日0:0:0
int y = dtCurrent.GetYear();
int mo = dtCurrent.GetMonth();
int ym = y*12 + mo - 1;
ym -= theApp.m_nListMonth; // 3か月
dtCurrent.SetDate(ym/12, ym%12+1, 1);
CString csNowDate = dtCurrent.Format(_T("%Y%m"));// 200910
結構面倒くさいね。
maruさん、お世話になります。
教えていただいたものでズバリ取得できました。しかし、こんなに面倒くさいものだとは思っていませんでした・・・・。
本当にありがとうございました。
ツイート | ![]() |