C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DateTimeで日付の比較を行いたい


(過去ログ 127 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■75710 / inTopicNo.1)  DateTimeで日付の比較を行いたい
  
□投稿者/ 西田 (3回)-(2015/04/25(Sat) 11:02:40)

分類:[.NET 全般] 

こんにちは。

環境:c#,.NET 4.0

日付の比較を行いたいと思います。s1のような日付データがあります。
この日付が本日から10足した日付より大きいかどうか知りたいと思います。
下記のようなコードを書いたのですが、もっと簡単に書けそうなのですが、
どのような方法がよいでしょうか?

よろしくお願いします。

var dt = DateTime.ParseExact(DateTime.Now.AddDays(10).ToString().Substring(0, 10).Replace("/","") + "000000", "yyyyMMddHHmmss", null);

string s1 = "201505011100"; //2015-05-01 11:00。データはこの形式固定になってしまいます。

var s2 = DateTime.ParseExact(s1.Substring(0, 8) + "000000", "yyyyMMddHHmmss", null);

if(dt < s2){
//処理
}

引用返信 編集キー/
■75711 / inTopicNo.2)  Re[1]: DateTimeで日付の比較を行いたい
□投稿者/ Hongliang (305回)-(2015/04/25(Sat) 11:34:15)
> 日付の比較を行いたいと思います。s1のような日付データがあります。
> この日付が本日から10足した日付より大きいかどうか知りたいと思います。
時刻はどう扱うんでしょうか。

> var dt = DateTime.ParseExact(DateTime.Now.AddDays(10).ToString().Substring(0, 10).Replace("/","") + "000000", "yyyyMMddHHmmss", null);
ToStringしてParseExactしてる意味がよく分かりません。
日付部分を取り出したいだけならDateTime::Dateプロパティを取得すればいいです。
DateTime.Today静的プロパティもあります。
引用返信 編集キー/
■75712 / inTopicNo.3)  Re[1]: DateTimeで日付の比較を行いたい
□投稿者/ shu (736回)-(2015/04/25(Sat) 11:46:19)
No75710 (西田 さん) に返信

> ・・・ 2015-05-01 11:00。データはこの形式固定になってしまいます。
これはどういう意味でしょうか?s1の文字列になる前は日付型なのでしょうか?

>
> var s2 = DateTime.ParseExact(s1.Substring(0, 8) + "000000", "yyyyMMddHHmmss", null);
>
"000000"の連結はしないで
"yyyyMMddHHmmss" => "yyyyMMdd" でよいと思います。

引用返信 編集キー/
■75714 / inTopicNo.4)  Re[2]: DateTimeで日付の比較を行いたい
□投稿者/ 西田 (4回)-(2015/04/25(Sat) 12:35:07)
Hongliang さん、shuさん

ご回答ありがとうございます。

>DateTime::Dateプロパティ

⇒Dateプロパティで日付を取得できる事を知りませんでした・・・

>"000000"の連結はしないで"yyyyMMddHHmmss" => "yyyyMMdd" でよいと思います。

⇒こちらで行くことができました。


s1の所には、データベースから取得した値が入ってきます。DBに格納されている日付の形式が「yyyyMMddHHmm」になっています。

s1の「yyyyMMddHHmm」の形式を「yyyyMMddHHmmss」に変換してやる。

本日から10日後の日付が欲しい。しかし、日付の比較には同じ「yyyyMMddHHmmss」でないと比較ができないと思い、変な式を作りました・・・

お教え頂いた方法で比較できましたので、助かりました。ありがとうございました。

var todayPlus10 = DateTime.Today.AddDays(10);
var dt = DateTime.ParseExact(s1.Substring(0, 8), "yyyyMMdd", null);
if(todayPlus15 < dt){}
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -