при расчете времени не учитывается другой день - PullRequest
0 голосов
/ 07 мая 2020

У меня есть код, который вычисляет время. но когда он переходит на следующий день, он как бы сбрасывается и не продолжает работать. то, что я пытаюсь сделать, - это когда он проходит после 12 утра, чтобы продолжать считать часы и печатать результат как 10, а не go обратно в 3

            string entry_T = dt.Rows[0][3].ToString();

            int delta_day = Int32.Parse(entry_T.Substring(8, 2)) - Int32.Parse(DT.Substring(8, 2));
            int st_h = Int32.Parse(entry_T.Substring(11, 2));
            int ed_h = Int32.Parse(DT.Substring(11, 2));
            int st_m = Int32.Parse(entry_T.Substring(14, 2));
            int ed_m = Int32.Parse(DT.Substring(14, 2));
            double delta_T = ((ed_h + 24 * delta_day) * 60 + ed_m - st_h * 60 - st_m) / 60.0;
            if (delta_T <= 1) print = 3;
            else if (delta_T <= 2) print = 5;
            else if (delta_T <= 3) print = 7;
            else if (delta_T <= 4) print = 8;
            else print = 10;
            return cost;

1 Ответ

3 голосов
/ 07 мая 2020

Вы можете вычесть 2 DateTimes, чтобы получить TimeSpan.

var dt1 = DateTime.Parse(your_string);
var timeSpan = DateTime.Now - dt1;

//timeSpan will tell you the difference, corrected for anomalies like leap years.

см .: https://docs.microsoft.com/en-us/dotnet/api/system.timespan?view=netcore-3.1

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