質問: datetime.parse(date2.tostring.substring(0,5)) if (chkdate1 >= chkdate2){ ~ どなたか詳しいかた教えてください
回答: string型の比較のエラーが出るはずはありませんが......。 datetime.parseでformatexceptionが発生したのではありませんか。 なお,tostringはシステムの設定に依存しますから, カスタム日付書式文字列を指定して文字列化しないと,substringへ渡すには不適当です。 # uみたいなカルチャ依存しない標準日付書式文字列であれば問題ないですが。 そして,書式文字列を指定したのでparseextractで同じ書式を指定してパースしないと正しく扱えません。 で,datetime型の年と月を取り出したいわけですから, datetime chkdate1 = new datetime(date1.year, date2.month, 1); のように,日付には適当な日を指定して再構築すればよいです。 1日を指定すればどんな月にも確実にあります。 # 31日とかを指定すると,存在しない月ではargumentoutofrangeexceptionが発生します。 末日を指定したいなら, datetime chkdate1 = new datetime(date1.year, date2.month, 1).addmonths(1).adddays(-1); と,「その月の初日の翌月の日の前日」という指定の仕方をします。 references) msdn: datetime.parse メソッド (string) (system) http://msdn.microsoft.com/ja-jp/library/1k1skd40.aspx msdn: datetime コンストラクター (int32, int32, int32) (system) http://msdn.microsoft.com/ja-jp/library/xcfzdy4x.aspx