日付の取得について

解決


てい  2009-07-16 00:49:58  No: 70608

質問させていただきます。

COleDateTime dtCurrent = COleDateTime::GetCurrentTime();
CString csNowDate = dtCurrent.Format(_T("%Y%m・・・"));

これで現在の日付等は取得できますが、お聞きしたいのはjavaのカレンダークラスみたいなクラスはないのかということです。

調べ方が悪いのか、見つからなくて困っています。宜しくお願い致します。


aetos  2009-07-16 00:54:33  No: 70609

> javaのカレンダークラス

そのものズバリはないと思います。
あった方が便利だと思うなら作ってしまいましょう。

現在日付の取得以外に何がしたいのかを具体的に書いてもらえれば、個別の実現方法はアドバイスできると思います。


てい  2009-07-16 02:16:28  No: 70610

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みたいなカレンダークラスがあればと思った次第です。

うまく文章かけなくてわかりにくくてすみません(汗)意図していることが伝わればいいのですが・・・・・・

宜しくお願い致します。


maru  2009-07-16 04:05:49  No: 70611

よくわからないんだけど、今日から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

結構面倒くさいね。


てい  2009-07-16 21:00:54  No: 70612

maruさん、お世話になります。

教えていただいたものでズバリ取得できました。しかし、こんなに面倒くさいものだとは思っていませんでした・・・・。

本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加