Pregunta Diferencia entre dos DateTimes C #?


Necesito una función que pueda devolver la diferencia entre las dos fechas siguientes como 24.

DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);

75
2018-05-10 13:58


origen


Respuestas:


Puedes hacer lo siguiente:

TimeSpan duration = b - a;

Hay muchos métodos integrados en la clase de tiempo para hacer lo que necesita, es decir

duration.TotalSeconds
duration.TotalMinutes

Se puede encontrar más información aquí.


144
2018-05-10 14:11



Pruebe lo siguiente

double hours = (b-a).TotalHours;

Si solo desea la diferencia de horas excluyendo la diferencia en días, puede usar lo siguiente

int hours = (b-a).Hours;

La diferencia entre estas dos propiedades se ve principalmente cuando la diferencia de tiempo es más de 1 día. La propiedad Horas solo informará la diferencia horaria real entre las dos fechas. Entonces, si dos fechas difieren en 100 años pero ocurren a la misma hora del día, las horas regresarían a 0. Pero TotalHours devolverá la diferencia entre la cantidad total de horas que ocurrió entre las dos fechas (876,000 horas en este caso).

La otra diferencia es que TotalHours devolverá horas fraccionarias. Esto puede o no ser lo que quieres. De lo contrario, Math.Round puede ajustarlo a su gusto.


15
2018-05-10 13:59



¿Quizás estás buscando:

int Difference = (a-b).Hours;

2
2018-05-10 14:03



int hours = (int)Math.Round((b - a).TotalHours)

1
2018-05-10 14:14



var theDiff24 = (b-a).Hours

0
2018-05-10 14:19



La diferencia horaria b / w a la hora se mostrará utilizando este método.

 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();
        }
    }

use su identificación de campo

var t1 captura un valor de 4:00 a.m.

compruebe que este código puede ser útil para alguien.


0
2018-02-25 06:41