プロが教える店舗&オフィスのセキュリティ対策術

C#のフォームにて

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

A 回答 (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文が間違ってますけど、気付いてますか?
    • good
    • 0
この回答へのお礼

ご回答下さりありがとうございます。
間違っているのは

 }
これですね。
助かります。

お礼日時:2010/07/03 22:04

DateTime now = DateTime.Now;


int nendo = (now.Month >= 4) ? now.Year : now.Year - 1;
label1.Text = nendo.ToString() + "年度";
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。

勉強の為に違うやり方も記述したりしてみたのですが、
下記の場合ですと、4行目のnendoのところでエラーが
出てしまいました。この場合はどのようにすれば宜しい
でしょうか。
あつかましい様ですが、是非ご教授頂きたく
宜しくお願い致します。

int nendo;
if(now.Month >= 4)
nendo = now.year - 1;
label1.Text = nendo.ToString() + "年度";

お礼日時:2010/07/03 09:17

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