• ベストアンサー

C#のフォームにて

C#のフォームにて お世話になります。C#のフォームにて labelに現在の年度を自動で読み取って”2010年度”と 表示させたいのですがうまくいきませんでした。 どなたかご親切な方、お教え頂きたく宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>int nendo; >if(now.Month >= 4) >nendo = now.year - 1; >label1.Text = nendo.ToString() + "年度"; if文に入らない場合nendoの値が初期化されていません。 通常のC言語等だとnendoの値がゴミのままでもそれを値として処理しますが、C#のint型の実態はクラスなので、初期化の有無を判別しているようです。 else文で代入するか、 int nendo = now.Year; と初期化しておく必要があります。 ちなみに、このソース、if文が間違ってますけど、気付いてますか?

miruchoko
質問者

お礼

ご回答下さりありがとうございます。 間違っているのは {  } これですね。 助かります。

その他の回答 (1)

回答No.1

DateTime now = DateTime.Now; int nendo = (now.Month >= 4) ? now.Year : now.Year - 1; label1.Text = nendo.ToString() + "年度";

miruchoko
質問者

お礼

ありがとうございます。 大変参考になりました。 勉強の為に違うやり方も記述したりしてみたのですが、 下記の場合ですと、4行目のnendoのところでエラーが 出てしまいました。この場合はどのようにすれば宜しい でしょうか。 あつかましい様ですが、是非ご教授頂きたく 宜しくお願い致します。 int nendo; if(now.Month >= 4) nendo = now.year - 1; label1.Text = nendo.ToString() + "年度";

関連するQ&A