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

Windows Forms Discussion :

[VB.NET]retirer les secondes à mon datesystem


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut [VB.NET]retirer les secondes à mon datesystem
    Bonjour, je reviens à l'attaque avec mon timer

    comme dans le titre, j'aimerais retirer les secondes à mon datesystem...

    Voilà ma situation : Avec un timer qui à un interval de 60 000 millisecondes, je vérifie que je n'ai pas une nouvelle demande en attente de prise en compte: si oui alors j'affiche Date OK si non j'affiche Date KO (en vrai dans mon projet je génère une alerte mail, mais j'ai simplifié mon code). Pour cela je charge toutes mes date de demande au format JJ/MM/AAAA HH/MM dans une listbox (ListBoxDatedemande). Mon problème c'est que mon dateandtime.now() est au format JJ/MM/AAAA HH/MM/SS... ainsi il me dit à chaque fois que ma date est KO, étant donné qu'il y a ces foutu secondes.

    Code Visual Basic :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     'Toutes les 60 secondes on vérifie qu'il y a pas une demande en attente de prise en compte depuis plus de 15 mn
            Dim dateattentepriseencompte As String = DateAdd(DateInterval.Minute, -15, DateAndTime.Now)
            For i As Integer = 0 To ListBoxDatedemande.Items.Count - 1
                If ListBoxDatedemande.Items.Item(i) = dateattentepriseencompte Then
                    MsgBox("DATE OK")
                Else : MsgBox("DATE KO")
                End If
            Next
    'Fin Toutes les 60 secondes on vérifie qu'il y a pas une demande en attente de prise en compte depuis plus de 15 mn

    Je voudrais donc pouvoir retirer les secondes à mon DateandTime ... j'attends vos proposition avec impatience

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    y a des dizaines de solutions (voir les méthode et function sur date, comme par exemple addseconds en lui donnant le nombre de secondes)

    sinon au lieu de = tu peux mettre > c'est plus simple et plus logique
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    addseconds, peut me permettre de mettre ma datesystem au format JJ/MM/AAAA HH/MM (rétirer les secondes)?

    Pour le > , le problème c'est qu'une fois que la date de ma demande passe au dessus de ma date system, j'aurais toutes les 60 secondes le message OK ... alors que je veux vérifer toutes les 60 secondes si ma condition est rempli et ne renvoyer qu'une seul fois mon alerte message OK : d'ou mon = qui me semble indispensable...

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu as une date qui as toujours 0 en secondes et l'autre que ca varie mais que tu ne voudrais pas gérer les secondes, tu fais addseconds du nombre de secondes contenu dedans, ca ramènera les secondes à 0 et donc tu pourras comparer

    sinon tu peux aussi faire comparer les date.tostring avec un format sans les secondes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    Merci de ton aide :

    j'ai trouvé cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim test As String = DateAndTime.Second(DateAndTime.Now)
            Dim resultat As String = DateAdd(DateInterval.Second, -test - 1, DateAndTime.Now)
            MsgBox(resultat)
    sa me retourne mes secondes à :00

    Que pense tu de ma solution?

  6. #6
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    Bon ben je fait comme sa :

    Je récupère les secondes de mon Dateandtime.now()
    Je les retire à ma date system pour obtenir un dateandtime au format JJ/MM/AAAA HH/MM/00
    et je rejoute 15 mn.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim time_second As String = DateAndTime.Second(DateAndTime.Now)
            Dim date_second_zero As Date = DateAdd(DateInterval.Second, -time_second, DateAndTime.Now)
            Dim dateattentepriseencompte As String = DateAdd(DateInterval.Minute, -15, date_second_zero)
            MsgBox(dateattentepriseencompte)
            For i As Integer = 0 To ListBoxDatedemande.Items.Count - 1
                If ListBoxDatedemande.Items.Item(i) = dateattentepriseencompte Then
                    MsgBox("DATE OK")
                Else : MsgBox("DATE KO")
                End If
            Next
    Merci de ton aide pol63

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/06/2006, 00h10
  2. changer la couleur de mon Form1 toutes les secondes
    Par stacker_junior dans le forum C++Builder
    Réponses: 9
    Dernier message: 10/05/2006, 19h36
  3. [net] recuperer les proprietes d'un File via une URL
    Par mma dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 06/05/2004, 12h45
  4. [VB.NET] afficher les "Services" de mon serv
    Par sangokus dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/03/2004, 13h09
  5. [LG]Retirer les blancs dans une chaine
    Par Andy_24DB dans le forum Langage
    Réponses: 16
    Dernier message: 25/02/2004, 16h30

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