Вычесть из одной даты другую

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Знаю, что этот вопрос не однократно поднимался на форуме. В том числе и я подобную тему создавал. Ну именно под текущую свою задачу не нашел решения.


У меня есть две даты:
DataPost = 09.03.18 (dd.MM.yy)
DataNeed = 03/15/2018 (MM/dd/yyyy)

Т.е. даты в разных форматах.

Мне нужно из DataNeed вычесть DataPost и получить разность в днях.

По всем темам, которые нашел на форуме либо отнимают дату от текущей даты, либо даты в одинаковом формате.

Нашел код, который пытаюсь под себя переделать, но в коде совсем не шарю, поэтому не получается:

string date = project.Variables["DataPost"].Value;
DateTime DataPost = DateTime.ParseExact(date, "dd.MM.yyyy", new System.Globalization.CultureInfo("ru-RU"));
DateTime DataNeed = DateTime.ParseExact(date, "MM/dd/yy", new System.Globalization.CultureInfo("ru-RU"));
return (DataNeed - DataPost).TotalDays;

Помогите. пожалуйста, написать правильный вариант.
 

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Подскажите такой код похож на правду? ) :

string date1 = project.Variables["DataPost"].Value;
string date2 = project.Variables["DataNeed"].Value;
DateTime DataPost = DateTime.ParseExact(date1, "dd.MM.yyyy", new System.Globalization.CultureInfo("ru-RU"));
DateTime DataNeed = DateTime.ParseExact(date2, "MM/dd/yy", new System.Globalization.CultureInfo("ru-RU"));
return (DataNeed - DataPost).TotalDays;
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
C#:
string DataPost0 = project.Variables["DataPost"].Value; // 09.03.18
string DataNeed0 = project.Variables["DataNeed"].Value; // 03/15/2018
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime DataPost = DateTime.ParseExact(DataPost0, "dd.MM.yy", culture);
DateTime DataNeed = DateTime.ParseExact(DataNeed0, "MM/dd/yyyy", culture);
return (DataNeed - DataPost).TotalDays; // 6
или без культуры, так как хз нужна ли она здесь:
C#:
string DataPost0 = project.Variables["DataPost"].Value; // 09.03.18
string DataNeed0 = project.Variables["DataNeed"].Value; // 03/15/2018
//System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime DataPost = DateTime.ParseExact(DataPost0, "dd.MM.yy", null);
DateTime DataNeed = DateTime.ParseExact(DataNeed0, "MM/dd/yyyy", null);
return (DataNeed - DataPost).TotalDays; // 6
У вас неверный формат года был (yyyy). Ман по форматам:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
 
Последнее редактирование:

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
C#:
string DataPost0 = project.Variables["DataPost"].Value; // 09.03.18
string DataNeed0 = project.Variables["DataNeed"].Value; // 03/15/2018
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime DataPost = DateTime.ParseExact(DataPost0, "dd.MM.yy", culture);
DateTime DataNeed = DateTime.ParseExact(DataNeed0, "MM/dd/yyyy", culture);
return (DataNeed - DataPost).TotalDays; // 6
или без культуры, так хз нужна ли она здесь:
C#:
string DataPost0 = project.Variables["DataPost"].Value; // 09.03.18
string DataNeed0 = project.Variables["DataNeed"].Value; // 03/15/2018
//System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime DataPost = DateTime.ParseExact(DataPost0, "dd.MM.yy", null);
DateTime DataNeed = DateTime.ParseExact(DataNeed0, "MM/dd/yyyy", null);
return (DataNeed - DataPost).TotalDays; // 6
У вас неверный формат года был (yyyy). Ман по форматам:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

Спасибо большое, все работает. Использовал без "культуры"
 

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