web-dev-qa-db-fra.com

Différence entre deux DateTimes C #?

J'ai besoin d'une fonction qui puisse renvoyer la différence entre les deux dates inférieures à 24.

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

Vous pouvez faire ce qui suit:

TimeSpan duration = b - a;

Il y a beaucoup de méthodes intégrées dans la classe timespan pour faire ce dont vous avez besoin, c'est-à-dire.

duration.TotalSeconds
duration.TotalMinutes

Plus d'informations peuvent être trouvées ici .

165
Joey Robert

Essayez ce qui suit

double hours = (b-a).TotalHours;

Si vous voulez juste la différence d’heures excluant la différence de jours, vous pouvez utiliser le code suivant.

int hours = (b-a).Hours;

La différence entre ces deux propriétés est principalement visible lorsque la différence de temps est supérieure à 1 jour. La propriété Heures ne signalera que la différence d'heure réelle entre les deux dates. Ainsi, si deux dates différaient de 100 ans mais se produisaient à la même heure de la journée, les heures renverraient 0. Mais TotalHours renverra la différence entre le nombre total d'heures écoulées entre les deux dates (876 000 heures dans ce cas).

L'autre différence est que TotalHours retournera des heures fractionnaires. Cela peut être ou ne pas être ce que vous voulez. Sinon, Math.Round peut l’ajuster à votre guise.

16
JaredPar

Vous cherchez peut-être:

int Difference = (a-b).Hours;
3
Vilx-
int hours = (int)Math.Round((b - a).TotalHours)
1
Damien

La différence de temps entre l'heure et le temps sera indiquée avec cette méthode.

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

utilisez vos identifiants de terrain

var t1 capture une valeur de 4:

vérifiez que ce code peut être utile à quelqu'un.

0
Darshan
var theDiff24 = (b-a).Hours
0
diadiora