プロが教えるわが家の防犯対策術!

ちょっとした問題が起こったので質問させていただきます。

使用しているのは、ASP.NETのC#です。
C#が無いので「C/C++」の項目で質問させていただきます。

for (DateTime d = date; d < enddate; d.AddDays(1))

上記for文でDateTimeで変数を作り、AddDaysで1日ずつ進めて、
1年間の各月日を取得しようとしています。

ですが、上記命令ではなぜか無限ループをしてしまいます。
for文ではDateTime変数は使えないのでしょうか?

ちなみに
dateには開始年(2011/01/01)
enddateには終了年(2012/01/01)
が入っているDateTime変数です。

A 回答 (2件)

MSDNより



このメソッドは、DateTime の値を変更しません。代わりに、この操作の結果を示す値を持つ新しい DateTime が返されます。

という訳で、何度AddDaysを呼び出しても、元のDateTime構造体の値は変わりません。
    • good
    • 0
この回答へのお礼

あ、わかりました。
Add系のメソッドは元の構造体の値は変わらなかったですよね。

解決しました。ありがとうございました。

お礼日時:2011/10/21 16:47

#1の方の言うとおりですが、解決方法としては、


for (DateTime d = date; d < enddate; d = d.AddDays(1))
としてください。
    • good
    • 0
この回答へのお礼

あ、わかりました。
Add系のメソッドは元の構造体の値は変わらなかったですよね。

解決しました。ありがとうございました。

お礼日時:2011/10/21 16:47

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