2

2年の時差を比較したい。

        public const long TwoYears = 2 * 365 * 24 * 3600;
        string currTime = DateTime.Now.ToString("yyyyMMddHHmmss");
        string recordTime = fileName.Split('_','-').Last();// format is 'yyyyMMddHHmmss'
        long diff = (long.Parse(currTime)) - (long.Parse(recordTime));
        if (diff < TwoYears)
            Console.WriteLine(fileName);

私はそれを正しくやっていますか?

4

2 に答える 2

5

日付に年を追加-2して、何とでも比較するだけです

if (dateTimeVar > DateTime.Now.AddYears(-2))
{
    // code...
}

日付が文字列からのものである場合は、DateTime.ParseExactを使用して、変換するを指定しformatます。

于 2013-01-28T15:31:47.063 に答える
1

いいえ、日付を注文番号として表すためです。より適切な解決策は次のとおりです。

String recordTime = fileName.Split('_','-').Last();// format is 'yyyyMMddHHmmss'
DateTime recordDateTime = DateTime.ParseExact( recordTime , "yyyyMMddHHmmss", CultureInfo.InvariantCulture );

if ( recordDateTime.AddYears(2) < DateTime.Now )
{
    Console.WriteLine(fileName);
}

編集:以下のコメントからわかるように、年を追加してDateTimesを比較することをお勧めします。

于 2013-01-28T15:40:49.907 に答える