訂正済みですが、更に訂正します。2.11を以下の内容に差し替えます。lastDay);}}実行結果:2011/02/28「月末」はややこしい計算を要します。毎月、最後の日付は変化するからです。CASEはLINQを使い、閏年の判定を行うIsLeapYearメソッドも使いこなして上手くやっているように見えますが、実はもっと簡単にできます。CODEは、以下のアイデアでもっと簡単に処理ができています。・月末とは、来月1日の1日手前であるつまり、今月1日の日付さえ作成できれば、あとは「来月に進める」「1日戻す」という2手順で計算終了です。DateTime構造体の場合、メソッドチェーンで1行に書くこともできます。この場合のポイントは、AddDaysメソッドに負数を渡すことで、1日前に戻している点です。CODE1には以下の問題があります。(計算途中でオーバーフローしてしまうから)・AddMonthsとAddDaysの組み合わせが最終日を得ているという意図が分かりにくいこの2つの問題を解消するためにモアベターな書き換えを行ってみましょう。now.Month));ポイントは、DateTime.DaysInMonthメソッドです。このメソッドは、最終日を得ることが目的のメソッドではなく、その月の日数を得るメソッドです。結果的に得られる値は同じです。そのものではないものの、意図も分かりやすくなりました。このコードには不満もあります。1"が何の役割も持たず、冗長であることそこで、DateTime型にこだわることをやめ、同じ出力が得られればそれで良いとして書き直してみましょう。month));}}出力結果は同じですが、C#ソースコードのサイズは284バイトから235バイトに減りました。ちなみに、桁を揃えて桁が足りないときに頭に0が付く機能が不要なら書式指定の":0000"や":00"は不要になり、もっと短くなります。DateTime型の値が欲しいのであれば以下の書き換えもありです。晶に対してメッセージを送ることができます。晶よりの返事を得られるものではないことにご注意ください。Dey.Co.,Ltd.。