Как рассчитать время между двумя датами c # [duplicate]

2017 ответ: теперь вы можете делать то, что хотите, в каждом текущем браузере и узле

. Это довольно просто:

  • Вернуть обещание
  • Используйте 'await' , в котором JavaScript ожидает, что обещание будет разрешено в vlue (например, hTTP-ответ)
  • Добавьте 'async' для родительской функции

Вот рабочая версия вашего кода:

(async function(){

var response = await superagent.get('...')
console.log(response)

})()

ожидание поддерживается во всех текущих браузерах и узлах 8 [/ д2]

77
задан S.L. Barth 23 July 2012 в 09:10
поделиться

6 ответов

Вы можете сделать следующее:

TimeSpan duration = b - a;

В классе времени есть много встроенных методов, чтобы сделать то, что вам нужно, то есть

duration.TotalSeconds
duration.TotalMinutes

Дополнительная информация может быть здесь .

146
ответ дан Joey Robert 5 September 2018 в 11:27
поделиться
int hours = (int)Math.Round((b - a).TotalHours)
1
ответ дан Damien 5 September 2018 в 11:27
поделиться

Будет показана временная разность b / w во времени с использованием этого метода.

 private void HoursCalculator()
    {
        var t1 = txtfromtime.Text.Trim();
        var t2 = txttotime.Text.Trim();
        var Fromtime = t1.Substring(6);
        var Totime = t2.Substring(6);
        if (Fromtime == "M")
        {
             Fromtime = t1.Substring(5);
        }
        if (Totime == "M")
        {
            Totime = t2.Substring(5);
        }

        if (Fromtime=="PM" && Totime=="AM" )
        {
            var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
            var dt2 = DateTime.Parse("1900-01-02 " + txttotime.Text.Trim());
            var t = dt1.Subtract(dt2);
            //int temp = Convert.ToInt32(t.Hours);
            //temp = temp / 2;
            lblHours.Text =t.Hours.ToString() + ":" + t.Minutes.ToString();

        }
        else if (Fromtime == "AM" && Totime == "PM")
        {
            var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
            var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
            TimeSpan t = (dt2.Subtract(dt1));
            lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
        }
        else
        {
            var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
            var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
            TimeSpan t = (dt2.Subtract(dt1));
            lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
        }
    }

использовать ваш идентификатор вашего поля

var t1 фиксирует значение 4:00 AM

проверить этот код может быть полезно кому-то.

0
ответ дан Darshan 5 September 2018 в 11:27
поделиться
var theDiff24 = (b-a).Hours
0
ответ дан diadiora 5 September 2018 в 11:27
поделиться

Попробуйте следующее

double hours = (b-a).TotalHours;

Если вы просто хотите разницу в часах, исключая разницу в днях, вы можете использовать следующие

int hours = (b-a).Hours;

. Разница между этими двумя свойствами в основном, когда разница во времени составляет более 1 дня. Свойство Hours будет сообщать только фактическую часовую разницу между двумя датами. Таким образом, если две даты отличались на 100 лет, но произошли в то же время в течение дня, часы вернутся 0. Но TotalHours вернет разницу между общим количеством часов, которое произошло между двумя датами (в этом случае 876 000 часов).

Другое отличие состоит в том, что TotalHours вернет дробные часы. Это может быть или не быть тем, что вы хотите. Если нет, Math.Round может настроить его по своему вкусу.

15
ответ дан JaredPar 5 September 2018 в 11:27
поделиться

Возможно, вы ищете:

int Difference = (a-b).Hours;
2
ответ дан Vilx- 5 September 2018 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: