Найти разницу в двух датах

Platon

Client
Регистрация
26.09.2015
Сообщения
260
Благодарностей
122
Баллы
43
Всем привет!
Поискал на форуме, но ответа так и не нашел
Есть решения но все не мой вариант.
А возможно и плохо искал))
Если что ткните носом)
Суть проста есть дата формат 8:00 PM - 29 Sep 2018
Нужно найти разницу в днях или часах или минутах или секундах не важно
Разница с текущей датой
Заранее всем спасибо!
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Да там с его форматом наверное придется чуть покостылять:
C#:
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); // задаем что у нас в анлийском формате месяцы сокращает
string Time_old = project.Variables["Time_old"].Value; // в Зенке в переменой "Time_old" должна быть наша старая дата жестко в формате "8:00 PM - 29 Sep 2018"
DateTime Time_old_classic = DateTime.ParseExact(Time_old, "h:mm tt - d MMM yyyy", culture); // умно парсим дату из нашей переменной в этом формате, изначально програма ее понимает как набор символов (string) а не как дату.
TimeSpan Time_diff = DateTime.Now - Time_old_classic;
return Math.Floor(Time_diff.TotalHours); //вернет разицу в часах, или меняем TotalHours на TotalSeconds и т.д.
Почитайте по теме эти статьи, чтобы понимать:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
https://zennolab.com/discussion/threads/schetchik-dnej.39313/#post-291590
 
  • Спасибо
Реакции: Platon

Platon

Client
Регистрация
26.09.2015
Сообщения
260
Благодарностей
122
Баллы
43
Это я видел, спасибо!
Да там с его форматом наверное придется чуть покостылять:
C#:
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); // задаем что у нас в анлийском формате месяцы сокращает
string Time_old = project.Variables["Time_old"].Value; // в Зенке в переменой "Time_old" должна быть наша старая дата жестко в формате "8:00 PM - 29 Sep 2018"
DateTime Time_old_classic = DateTime.ParseExact(Time_old, "h:mm tt - d MMM yyyy", culture); // умно парсим дату из нашей переменной в этом формате, изначально програма ее понимает как набор символов (string) а не как дату.
TimeSpan Time_diff = DateTime.Now - Time_old_classic;
return Math.Floor(Time_diff.TotalHours); //вернет разицу в часах, или меняем TotalHours на TotalSeconds и т.д.
Почитайте по теме эти статьи, чтобы понимать:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
https://zennolab.com/discussion/threads/schetchik-dnej.39313/#post-291590
То что доктор прописал)
Спасибо огромное, уже и статьи читаю)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)