Probleme horaire [Résolu]

cs_niblon 64 Messages postés mardi 8 août 2006Date d'inscription 20 septembre 2011 Dernière intervention - 7 nov. 2010 à 15:23 - Dernière réponse : cs_niblon 64 Messages postés mardi 8 août 2006Date d'inscription 20 septembre 2011 Dernière intervention
- 9 nov. 2010 à 00:40
Bonjour a tous

voila j'ai encore un souci avec mon application.
je n'arrive pas a savoir si une piece est allumer ou eteinte en fonction du stade 1 ou 2 et de la plage horaire et au nombre d'heure que l'utilisateur auras choisi au prealable.
[codevb] 'vérification pour savoir si lumiere allumée ou pas
If (DateDiff(DateInterval.Day, DateD, Now) < 0) Then
If ((txt_Allumage1.Text < Label33.Text) And (txt_Allumage1.Text < Now.Hour And Now.Hour < Label33.Text)) Then
F_Accueil.ToolStripStatusLabel1.Text = "allumee"
ElseIf ((txt_Allumage1.Text > Label33.Text) And (Now.Hour < Label33.Text Or Now.Hour < 24)) Then
F_Accueil.ToolStripStatusLabel1.Text = "allumee"
Else
F_Accueil.ToolStripStatusLabel1.Text = "eteinte"
End If
Else
If ((txt_Allumage2.Text < Label32.Text) And (txt_Allumage2.Text < Now.Hour And Now.Hour < Label32.Text)) Then
F_Accueil.ToolStripStatusLabel1.Text = "allumee"
ElseIf ((txt_Allumage2.Text > Label32.Text) And (Now.Hour < Label32.Text Or Now.Hour < 24)) Then
F_Accueil.ToolStripStatusLabel1.Text = "allumee"
Else
F_Accueil.ToolStripStatusLabel1.Text = "eteinte"
End If

End If/codevb

ce code me renvoie toujours piece eteinte avec differente heure sur le pc
si quelqu'un vois une erreur ou aurais une solution , je suis preneur.

Merci d'avance
@+Niblon
Afficher la suite 

4 réponses

Répondre au sujet
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 8 nov. 2010 à 14:13
+3
Utile
Salut
Ce que tu veux faire c'est claire mais ton code

alors j'ai écrit de nouveau
Public Class Form5
    Private datecycle1 As Date
    Private datecycle2 As Date
    Private heureallumagecycle1 As Integer
    Private heureeteintcycle1 As Integer
    Private heureallumagecycle2 As Integer
    Private heureeteintcycle2 As Integer
    Private daycycle1 As Integer
    Private daycycle2 As Integer
    Private Sub Initialize()
        datecycle1 = "30/10/2010"
        daycycle1 = 15
        datecycle2 = DateAdd(DateInterval.Day, daycycle1, datecycle1)
        daycycle2 = 10
        heureallumagecycle1 = 16
        heureeteintcycle1 = 10
        heureallumagecycle2 = 19
        heureeteintcycle2 = 7
    End Sub
    Private Function IsEteint() As String
    
        Dim hournow As Date
        Dim item() As String
        Dim mystr As String
        Dim expression1 As Boolean
        Dim expression2 As Boolean
        hournow = FormatDateTime(Now, DateFormat.ShortTime)
        mystr = ""
        item = Split(hournow, ":") 'obtenir seulement la partie heure 
        If (DateDiff(DateInterval.Day, datecycle1, Now) < daycycle1) And (DateDiff(DateInterval.Day, datecycle1, Now) > 0) Then
            'je suis dans le cycle 1
            expression1 = (CInt(item(0)) >= heureallumagecycle1) And (CInt(item(0)) < 24)
            expression2 = (CInt(item(0)) >= 0) And (CInt(item(0)) < heureeteintcycle1)
            If expression1 Or expression2 Then
                mystr = "cycle1 allumé"
            Else
                mystr = "cycle1 éteint"
            End If
        End If
        If (DateDiff(DateInterval.Day, datecycle2, Now) < daycycle2) And (DateDiff(DateInterval.Day, datecycle2, Now) > 0) Then
            'je suis dans le cycle 2
            expression1 = (CInt(item(0)) >= heureallumagecycle2) And (CInt(item(0)) < 24)
            expression2 = (CInt(item(0)) >= 0) And (CInt(item(0)) < heureeteintcycle2)
            If expression1 Or expression2 Then
                mystr = "cycle2 allumé"
            Else
                mystr = "cycle2 éteint"
            End If
        End If
        Return mystr
    End Function
    Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Initialize()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Label1.Text = FormatDateTime(Now, DateFormat.ShortTime)
        Label2.Text = IsEteint()

    End Sub
End Class

j'ai testé ça l'air d'aller j'espère
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 7 nov. 2010 à 19:50
0
Utile
Bonsoir
Si tu envoies un code utilise le code (toolbar
au dessus 3ieme icon à partir de la droite
choisi dans le menu vb
j'ai l'impression que tu t'es compliqué avec
tous les if
Essayes d'expliquer ce que tu veux faire ?
Commenter la réponse de cs_ShayW
cs_niblon 64 Messages postés mardi 8 août 2006Date d'inscription 20 septembre 2011 Dernière intervention - 7 nov. 2010 à 21:39
0
Utile
oui je me suis apercu de mon erreur mais trop tard (le = entre code et vb )

Donc en gros , je voudrais verifier si une piece est allumee ou eteinte en fonctionne de la plage horaire et du cycle (1 ou 2).

l'utilisateur rentrer le nombre de jour pour le cycle 1 et le 2 ,le nombre d'heure ou la piece est allumee, puis creneau horaire de tel heure a tel heure.mais il me renvoie toujours eteint.

Exemple:(les chiffres sont renseigner par l'utilisateur.)
Cycle 1 . 15 jours. allumage a 16H/eteint a 10H et enfin le nombre d'heure (18)ou la piece est allumee.
Cycle 2 . 10 jours. allumage a 19H/eteint a 7H et enfin le nombre d'heure (12)ou la piece est allumee.

'vérification pour savoir si lumiere allumée ou pas 
If (DateDiff(DateInterval.Day, DateD, Now) < 0) Then 
If ((txt_Allumage1.Text < Label33.Text) And (txt_Allumage1.Text < Now.Hour And Now.Hour < Label33.Text)) Then 
F_Accueil.ToolStripStatusLabel1.Text = "allumee" 
ElseIf ((txt_Allumage1.Text > Label33.Text) And (Now.Hour < Label33.Text Or Now.Hour < 24)) Then 
F_Accueil.ToolStripStatusLabel1.Text = "allumee" 
Else 
F_Accueil.ToolStripStatusLabel1.Text = "eteinte" 
End If 
Else 
If ((txt_Allumage2.Text < Label32.Text) And (txt_Allumage2.Text < Now.Hour And Now.Hour < Label32.Text)) Then 
F_Accueil.ToolStripStatusLabel1.Text = "allumee" 
ElseIf ((txt_Allumage2.Text > Label32.Text) And (Now.Hour < Label32.Text Or Now.Hour < 24)) Then 
F_Accueil.ToolStripStatusLabel1.Text = "allumee" 
Else 
F_Accueil.ToolStripStatusLabel1.Text = "eteinte" 
End If 

End If


J'espere avoir été assez clair.

Merci d'avance
@+Niblon
Commenter la réponse de cs_niblon
cs_niblon 64 Messages postés mardi 8 août 2006Date d'inscription 20 septembre 2011 Dernière intervention - 9 nov. 2010 à 00:40
0
Utile
Merci beaucoup je l'ai modifier un peu pour l'adapter a mon appli , est cela fonctionne a merveille.

Je t'en remercie beaucoup.

@+Niblon
Commenter la réponse de cs_niblon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.