Probleme horaire

Résolu
cs_niblon Messages postés 59 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 20 septembre 2011 - 7 nov. 2010 à 15:23
cs_niblon Messages postés 59 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 20 septembre 2011 - 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

4 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
8 nov. 2010 à 14:13
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
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 nov. 2010 à 19:50
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 ?
0
cs_niblon Messages postés 59 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 20 septembre 2011
7 nov. 2010 à 21:39
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
0
cs_niblon Messages postés 59 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 20 septembre 2011
9 nov. 2010 à 00:40
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
0
Rejoignez-nous