ASP Classic: выполнить такое же вычитание из 2 дат и получить то же значение в значении C # - PullRequest
2 голосов
/ 19 марта 2019

Я пытаюсь перейти с классического ASP на ASP.Net MVC C #.Есть часть, где мой классический код ASP получит поле DateTime A , затем вычтет значение B и получит ответ 14322.4290162037 Дело в том, что яне знаю, как получить то же значение ответа в C #

 response.write "A: ==The Value: 19/03/2019 10:17:47==" & rstPASS("DATELASTUSE") & "<br>"
 response.write "B: ==The Value: 01/01/1980 === " & CDate("01/01/1980") & "<br>"
 response.write "A - B: I get: 14322.4290162037 " & rstBROPASS("DATELASTUSE") - CDate("01/01/1980") & "<br>"

Что я пробовал

 idtLastUse = dt.Rows[0]["DATELASTUSE"] - DateTime.ParseExact(s: "01-01-1980", format: "dd/MM/yy", provider: null);

Ответы [ 3 ]

3 голосов
/ 19 марта 2019

Вы можете использовать:

DateTime d1 = new DateTime(2019, 3, 19, 10, 17, 47);
DateTime d2 = new DateTime(1980, 1, 1, 0, 0, 0);
Console.WriteLine(d1.ToOADate() - d2.ToOADate());

Посмотрите документацию для ToOADate, чтобы понять, почему.

0 голосов
/ 19 марта 2019

VB (все варианты) использует формат даты OLE Automation для представления даты в числовом формате.

Краткое описание:

с плавающей точкойчисло точек, чей интегральный компонент представляет собой число дней до или после полуночи 30 декабря 1899 года, а дробный компонент представляет время в этот день, деленное на 24.

Мы можем проверить это самостоятельно, используябыстрый пример;

<%
Call Response.Write(FormatDateTime(CDate(0), vbLongDate))
%>

В зависимости от ваших региональных настроек вернется результат;

30 December 1899

Полезные ссылки

0 голосов
/ 19 марта 2019

Вы можете вычесть 2 даты следующим образом:

DateTime startTime = DateTime.Now;
DateTime endTime = DateTime.Now.AddDays(5);

TimeSpan span = endTime.Subtract (startTime);
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Console.WriteLine( "Time Difference (hours): " + span.Hours );
Console.WriteLine( "Time Difference (days): " + span.Days );
...