C # - différence entre deux dates?

j'essaie de calculer la différence entre deux dates. C'est ce que j'utilise actuellement:

int currentyear = DateTime.Now.Year;

DateTime now = DateTime.Now;
DateTime then = new DateTime(currentyear, 12, 26);
TimeSpan diff = now - then;
int days = diff.Days;
label1.Text = days.ToString() + " Days Until Christmas";

Tous fonctionne bien sauf que c'est un jour de congé. Je suppose que c'est parce que ça ne compte pas moins de 24 heures par jour. Est-il un moyen de l'obtenir pour le faire? Remercier.

7
demandé sur user 2009-12-03 13:25:22
la source

4 ответов

int days = (int)Math.Ceiling(diff.TotalDays);
12
répondu LorenVS 2009-12-03 13:33:29
la source

la question est plutôt philosophique; Si Noël était demain, considéreriez-vous qu'il reste 1 jour, ou 0 jours. Si vous mettez le jour de demain dans votre calcul, La réponse sera 0.

1
répondu Espen Medbø 2009-12-03 13:32:54
la source

Votre problème disparaît si vous remplacez votre:

DateTime.Now

avec:

DateTime.Today

comme votre calcul de différence sera alors travailler en jours entiers.

1
répondu stovroz 2009-12-03 13:57:10
la source

j'utilise normalement le code suivant pour obtenir la sortie prévue par l'unité dans laquelle la sortie est requise:

        DateTime[] dd = new DateTime[] { new DateTime(2014, 01, 10, 10, 15, 01),new DateTime(2014, 01, 10, 10, 10, 10) };

        int x = Convert.ToInt32((dd[0] - dd[1]).TotalMinutes);

        String unit = "days";

        if (x / 60 == 0)
        {
            unit = "minutes";
        }

        else if (x / 60 / 24 == 0)
        {
            unit = "hours";
            x = x / 60;
        }

        else
        {
            x = x / (60 * 24);
        }

        Console.WriteLine(x + " " + unit);
0
répondu olleh 2014-04-15 14:21:57
la source

Autres questions sur