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 :

rechercher l'heure minimum dans un arraylist


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut rechercher l'heure minimum dans un arraylist
    bonjour tout le monde,

    voici je suis face à un probleme.
    j'insère des heures dans un arralist de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TabAlarmes.Add(DateTime.ParseExact(heureChaine + minuteChaine + "00", "HHmmss", null));
    j'aimerais trouver l'heure la plus petite dans ce tableau, comment puis-je faire ?
    il faut aussi que la heure soit supérieure à l'heure actuelle !
    j'ai déjà ça :
    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
     
    public DateTime prochaineAlarme()
            {
                DateTime momentActuel = DateTime.Now;
                ArrayList lesAlarmes = listeAlarmes();
                int nbAlarmes = lesAlarmes.Count;
     
                ArrayList AlarmesRestantes = new ArrayList();
                int j = 0;
     
                // on cherche les alarmes qui restent a éxécuter
                for (int i = 0; i < nbAlarmes; i++ )
                {
                    if (lesAlarmes[i] > momentActuel)
                    {
                        AlarmesRestantes[j] = lesAlarmes[i];
                        j++;
                    }
                }
     
     
            }
    ce début de fonction, si elle fonction, donne les dates supérieures à l'instant présent, mais je bloque sur la suite >_<

    merci pour votre aide !

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    1- D'abord je te conseille d'utiliser une List<T> plutot qu'une arraylist
    2- Tu peux trier ta Llist<T> en definissant un Comparer
    3- Les concaténation du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    heureChaine + minuteChaine + "00"
    C'est franchement pas joli, et j'espere que tes heures et minutes sont bien au format

    08 05 pour 8h5

    Utilise plutot a partir de valeurs integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("{0:00}{1:00}",heure,minutes);

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    olala j 'ai pas tout compris lol
    mon niveau n'est pas assez élevé pour comprendre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("{0:00}{1:00}",heure,minutes);
    ni ça :
    bon je vais voir sur google, je reviens

    merci

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bon je n'y arrives pas >_<

    voici mes fonctions :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    public ArrayList listeAlarmes()
            {
                int nbAlarmes = getNbAlarmes();
                ArrayList TabAlarmes = new ArrayList();
     
                int x = 0;
     
                // pour chaque alarme prévue
                for (int i = 0; i < nbAlarmes; i++)
                {
                    int nbRappels = ((ClAlarme)lesAlarmes[i]).getNbRappels();
                    int intervalRappels = ((ClAlarme)lesAlarmes[i]).getIntervalRappel();
                    string uneAlarme = ((ClAlarme)lesAlarmes[i]).getHeureAlarme();
                    int heure = getHeure(uneAlarme);
                    int minute = getMinute(uneAlarme);
                    TabAlarmes.Add(heure + minute + "00");
     
                    // pour chaque rappel
                    for (int j = 0; j < nbRappels; j++)
                    {
                        minute = getMinute(Convert.ToString(TabAlarmes[x])) + intervalRappels;
                        if (minute >= 60)
                        {
                            heure++;
                            minute = 60 - minute;
                        }
     
                        // écriture des heures
                        string heureChaine = "";
                        if (heure < 10 || heure == 24)
                        {
                            if (heure < 10)
                            {
                                heureChaine = "0" + heure;
                            }
                            else if (heure == 24)
                            {
                                heureChaine = "00";
                            }
                        }
     
                        // écriture des minutes
                        string minuteChaine = "";
                        if (minute < 10)
                        {
                            minuteChaine = "0" + minute;
                        }
     
                        x++;
                        // enregsitrement
                        TabAlarmes.Add(DateTime.ParseExact(heureChaine + minuteChaine + "00", "HHmmss", null));
                    }
                }
                return TabAlarmes;
            }
     
            public DateTime prochaineAlarme()
            {
                DateTime momentActuel = DateTime.Now;
                ArrayList lesAlarmes = listeAlarmes();
                int nbAlarmes = lesAlarmes.Count;
     
                ArrayList AlarmesRestantes = new ArrayList();
                int j = 0;
     
                // on cherche les alarmes qui restent a éxécuter
                for (int i = 0; i < nbAlarmes; i++ )
                {
                    if (lesAlarmes[i] > momentActuel)
                    {
                        AlarmesRestantes[j] = lesAlarmes[i];
                        j++;
                    }
                }
     
     
            }
    quelqu'un peut m'aider pour la réécriture ?
    svp ^^

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    quelqu'un peut m'aider pour la réécriture ?
    svp ^^
    Le but du Forum n'est pas de faire ton travail a ta place mais t'aider a le comprendre et répondre a des questions pour t'aider a progresser dans cette compréhension

    Il y a autre chose qui m'interpelle

    D'une part tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                    int heure = getHeure(uneAlarme);
                    int minute = getMinute(uneAlarme);
                    TabAlarmes.Add(heure + minute + "00");
    Et d'autre part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TabAlarmes.Add(DateTime.ParseExact(heureChaine + minuteChaine + "00", "HHmmss", null));
    Donc dans TabAlarmes tu mets des pomme et des poires et puis tu voudrais analyser les éléments de cette compote ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche dans une ArrayList
    Par c-ve dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/07/2007, 11h22
  2. Réponses: 4
    Dernier message: 19/06/2007, 10h41
  3. [C#,débutante] recherche dans une arraylist
    Par MissLaLou dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/05/2007, 08h58
  4. Réponses: 6
    Dernier message: 02/04/2007, 14h20
  5. recherche du minimum dans un vector
    Par javamax dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 22/10/2006, 09h43

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