Question

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);
Était-ce utile?

La solution

Vous pouvez effectuer les opérations suivantes:

TimeSpan duration = b - a;

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

duration.TotalSeconds
duration.TotalMinutes

Vous pouvez trouver plus d’informations ici .

Autres conseils

Essayez ce qui suit

double hours = (b-a).TotalHours;

Si vous souhaitez simplement que la différence d'heures exclue la différence de jours, vous pouvez utiliser les éléments suivants

int hours = (b-a).Hours;

La différence entre ces deux propriétés s’observe principalement 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 renverra des fractions d’heures. Cela peut être ou ne pas être ce que vous voulez. Sinon, Math.Round peut l’ajuster à votre guise.

Vous recherchez peut-être:

int Difference = (a-b).Hours;
int hours = (int)Math.Round((b - a).TotalHours)
var theDiff24 = (b-a).Hours

La différence de temps entre le temps et l'heure sera affiché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 votre identifiant de champ

var t1 enregistre une valeur de 4 h 00

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top