Игнорировать миллисекунды при сравнении двух дат - PullRequest
65 голосов
/ 11 августа 2011

Это, вероятно, глупый вопрос, но я не могу понять это. Я сравниваю LastWriteTime двух файлов, однако он всегда терпит неудачу, потому что для файла, который я скачал из сети, всегда заданы миллисекунды, равные 0, а мой исходный файл имеет фактическое значение. Есть ли простой способ игнорировать миллисекунды при сравнении?

Вот моя функция:

//compare file's dates
public bool CompareByModifiedDate(string strOrigFile, string strDownloadedFile)
{
     DateTime dtOrig = File.GetLastWriteTime(strOrigFile);
     DateTime dtNew = File.GetLastWriteTime(strDownloadedFile);

     if (dtOrig == dtNew)
        return true;
     else
        return false;
}

Заранее спасибо

Ответы [ 13 ]

0 голосов
/ 14 октября 2016

Литые сортируемые строки и сравнить.просто и хорошо работает.

    return string.Compare(dtOrig.ToString("s"), dtNew.ToString("s"), 
StringComparison.Ordinal) == 0;
0 голосов
/ 14 января 2016

Самый простой способ обрезать время - это отформатировать его и проанализировать нужные единицы:

var myDate = DateTime.Parse(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss"));

Переписан метод DOK

public bool CompareByModifiedDate(string strOrigFile, string strDownloadedFile)
    {
         DateTime dtOrig = DateTime.Parse(File.GetLastWriteTime(strOrigFile).ToString("MM/dd/yyyy hh:mm:ss"));
         DateTime dtNew = DateTime.Parse(File.GetLastWriteTime(strDownloadedFile).ToString("MM/dd/yyyy hh:mm:ss"));

         if (dtOrig == dtNew)
            return true;
         else
            return false;
    }
0 голосов
/ 14 октября 2014

Не знаю, почему почти всем программистам нужны дополнительные строки для возврата значения bool из функции с выражением bool.

вместо

if (dtOrig.ZeroMilliseconds() == dtNew.ZeroMilliseconds())
    return true;
 else
    return false;

вы всегда можете просто использовать

return dtOrig.ZeroMilliseconds() == dtNew.ZeroMilliseconds()

если выражение истинно, оно возвращает истину, иначе ложь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...