アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在VisualC++ ExpressEditionを使って、C++の勉強をしながら万年カレンダーを作ろうとしていています。

ひとまずカレンダーの表示に使う月・日・曜日をDateTime::Nowから取り出したいのですが、
DateTime d1 = DateTime::Now.AddMonths;
label1->Text = d1.ToShortTimeString;
と試しにlabelに現在の月を表示させようとしたところ、
「1 番目の引数を 'System::String ^(__clrcall System::DateTime::* )(void)' から 'System::String ^' に変換できません。」
というエラーメッセージとともに弾かれてしまいます。
どこをどう変えればよいのか教えてください。

勉強を始めるのに買ってきた参考書では、DateTime::Now.ToLongTimeString;で日付から時刻まで繋げて表示する方法しか載っていませんでした(索引にもDateTime::Nowのみ)
PCで検索しようとしても別の言語や参考書のHPが大量に引っかかって困っています。

A 回答 (2件)

DateTime d1 = DateTime::Now;


label1->Text = d1.ToString("yyyy年MM月dd日(ddd)dddd");
を試そう(実際にやってみた訳じゃないのでダメかもしんない)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
試しにやってみたらきちんと表示されました。

"yyyy"などのみで正しく表示されることが確認できたので、これを利用させていただきます。


回答頂きましたお二方、ありがとうございます。

お礼日時:2009/03/09 16:52

VBとちがうのでカッコをつけてください。



label1->Text = d1.ToShortTimeString();

ちなみにエラーの内容は、
(String^型変数)に
(引数を取らなく、String^を返すDateTimeクラスの関数=(デリゲード))
を代入できませんという趣旨のものです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
エラー内容もStringに変換できていない、ということしか分からなかったので助かりました。
()をつけたらコンパイルは通るようになりました。

しかし今度はSystem::DateTime::Now.AddMonthsに引数リストを要求されました。
DateTime d1 = DateTime::Now.AddMonths(0);
label1->Text = d1.ToString();
と入れてみると結果が「2009/03/09 16:36:34」となってしまい、どうやらAddMonthsでは月の部分を取り出すことにはならないようです。
かといってNowをMonthなどに換えてもエラーが出て・・・
別の関数があるのでしょうか?

お礼日時:2009/03/09 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!