IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Verifier si une date est dans un intervalle


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 421
    Points
    421
    Par défaut Verifier si une date est dans un intervalle
    Bonjour à tous,
    je vous soumet mon problème:
    j'ai découpé la journée en intervalle de quart d'heure et lorsque l'utilisateur saisie une heure donnée, par exemple t=14:33, on vérifie dans quelle quart d'heure se trouve le temps saisie. Le quart d'heure en question me permet de retourner une information.
    la journée est découpée comme suite:
    00:00 - 00:15
    00:15 - 00:30
    00:30 - 00:45
    00:45 - 01:00
    01:00 - 01:15
    01:15 - 01:30
    01:30 - 01:45
    01:45 - 02:00
    ...

    23:45 - 00:00

    Ainsi, je souhaite vérifier si "t" saisie est dans l'intervalle 14:30 - 14 45.

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    Bonjour, voici un petit exemple de ce que je ferrais, le code n'est pas optimisé, loin de là même mais l'idée est là ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
                    DateTime DateRandom = new DateTime(2010,1,1); //Peut importe le jour, apparemment ce qui t'interesse c'est l'heure
     
                    IFormatProvider culture = new CultureInfo("fr-FR", true);
                    DateTime HeureDebut = DateTime.Parse("14:30", culture); //Peut être utiliser DateTime.TryParse pour valider l'heure
                    DateTime HeureFin = DateTime.Parse("14:45", culture);
     
                    DateTime debut = new DateTime(DateRandom.Year, DateRandom.Month, DateRandom.Day, HeureDebut.Hour, HeureDebut.Minute, 0);
                    DateTime fin = new DateTime(DateRandom.Year, DateRandom.Month, DateRandom.Day, HeureFin.Hour, HeureFin.Minute, 0);
     
                    DateTime heuretemp = DateTime.Parse("14:33", culture); //Peut être utiliser DateTime.TryParse pour valider l'heure
                    DateTime MyDate = new DateTime(DateRandom.Year, DateRandom.Month, DateRandom.Day, heuretemp.Hour, heuretemp.Minute, 0);
     
                    if(MyDate>=debut && MyDate <= fin)
                        //Dans l'intervalle

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Tu sais que dans une journée, tu as 96 quarts d'heure. Il est est possible de récupérer le numéro du quart d'heure à partir d'une heure donnée :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateTime date = DateTime.Now;
    int quartHeure = (date.Hour * 4) + (date.Minute / 15);

    Il est donc simple de savoir dans quelle tranche tu te situes.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    EDIT: En fait la solution de binou est 1000x plus simple

    Sinon, il suffit de créer une classe représentant ton quart d'heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public class QuartDHeure
    {
    public readonly TimeSpan HeureDeDebut;
    public readonly TimeSpan HeureDeFin;
     
    public QuartDHeure(TimeSpan heureDeFin)
    {
    HeureDeFin = heureDeFin;
    HeureDeDebut = heureDeFin.Substract(new TimeSpan(0,14,59));
    }
     
    public bool FaitPartiDeCeQuartDHeure(TimeSpan heureATester)
    {
    if(heureATester >= heureDeDebut
    && heureATester <= heureDeFin)
    {
    return true;
    }
     
    return false;
    }
     
    }
    Ensuite tu crées tous tes objets QuartDHeure, tu les stockes dans une liste et tu n'as plus qu'à utiliser ta méthode avec les méthodes de IEnumerable
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 421
    Points
    421
    Par défaut
    Merci à tous pour votre promptitude! Je teste toutes les solutions et vous tient informé pour la suite.

Discussions similaires

  1. [IF] Si une variable est dans un intervalle alors
    Par alers dans le forum Débutez
    Réponses: 2
    Dernier message: 28/05/2014, 14h59
  2. Verifier qu'une date se trouve dans un intervalle
    Par camer12 dans le forum Général Java
    Réponses: 1
    Dernier message: 08/07/2011, 01h09
  3. Verifier qu'une valeur est comprise dans un intervalle
    Par wizo_nac dans le forum Prolog
    Réponses: 7
    Dernier message: 23/06/2009, 18h36
  4. [XL-2003] vérifier si heure + date est dans l'intervalle
    Par dawood dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2009, 17h46
  5. Test si une valeur est dans un intervale
    Par olibara dans le forum Excel
    Réponses: 3
    Dernier message: 18/02/2009, 08h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo