
C#でプログラムをしています。
年月日のデータから年月だけを抽出し年月を比較し処理を行いたいのですが方法がわかりません。
下記のような書き方をしましたが、string型は>で比較できない(?)といったようなエラーとなってしまいました
(たとえば2011/08/06という日付だったら2011/08のみを抽出するつもりでかきました。)
Datetime chkDate1 = DateTime.parse(date1.Tostring.Substring(0,5))
Datetime chkDate2 = DateTime.parse(date2.Tostring.Substring(0,5))
if (chkDate1 >= chkDate2){
~
どなたか詳しいかた教えてください
No.1ベストアンサー
- 回答日時:
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 …
MSDN: DateTime コンストラクター (Int32, Int32, Int32) (System)
http://msdn.microsoft.com/ja-jp/library/xcfzdy4x …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) vb.net どうしてイコールにならないのでしょうか 4 2022/09/29 12:21
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) エクセル シート比較で書式を変えるを繰り返したい 2 2023/05/05 11:25
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
このQ&Aを見た人はこんなQ&Aも見ています
-
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
C# 配列の変数宣言について。
C言語・C++・C#
-
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
-
4
2つのテーブルから条件に一致しないデータ抽出
SQL Server
-
5
select insertで複数テーブルから値を取得したい
Oracle
-
6
CloseとDisposeの違い
Visual Basic(VBA)
-
7
文字列からカンマを取り除きたい
C言語・C++・C#
-
8
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
9
DateTimePickerでに年月までしか選択できないようにしたいです。
Visual Basic(VBA)
-
10
大量のデータを読み込んで表示する速度を改善したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
EXCELで=より左の文字を一括で...
-
【Excel VBA】複数ある特定の文...
-
16表記の文字列を数字に直した...
-
VBA2005 16進を2桁で表示したい。
-
変数に入れた文字列(定数)で書...
-
OnTime 使用時のプロシージャへ...
-
文字列からタブコードを取り除...
-
エクセルで文字列の最大値を抽...
-
LEFT関数で文字数を指定しない...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルVBAで特定の文字列が見...
-
ヒアドキュメントのEOLとEOMの違い
-
C++のdefine文の使い方の質問で...
-
漢数字に変換するプログラム
-
C# 巨大な文字列の計算をさせたい
-
Excelで指数表現しないようにす...
-
アクセスで特定の数字以外(複...
-
bashスクリプトでの文字列から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
MS SQLServer のSQLで文字列の...
-
VBの「As String * 128」とは?
-
エクセルでセル内の文字列の最...
-
ORCLEでの小数の表示方法の変更...
-
bashスクリプトでの文字列から...
-
LEFT関数で文字数を指定しない...
-
アクセスで特定の数字以外(複...
おすすめ情報