Passage heure d'été

dindinfb Messages postés 48 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 3 janvier 2015 - Modifié par dindinfb le 17/09/2014 à 08:08
 dindinfb - 17 sept. 2014 à 22:16
bonjour je débute en vb .......

Dans mon appli , j'ai 7 label qui affiche 7 heure déferentes depuis une base access suivant la date du jour.
Ai voulu augmenter d'une heure au passage heure d'été ou enlever une heure au passage heure d'hiver .
Aprés une recherche sur internet ai trouvé cette function , mais je n'arrieve pas à l'appliquer . Ce que je souhaite obtenir , ce que la function cherche la date du passage , et si elle le trouve elle rajoute une heure ou elle enleve une heure à la valeur des 7 label en question. Merci pour votre aide .

'Passage heure d'hiver
Function Dtchgetehiv(t0 As Date) As Date
Dim jour As Integer
Dim refdate As Variant
Dim debuthiver As Date
'on se place au 25 Octobre
refdate = "25/10/" & Year(t0) & " 03:00:00"
debuthiver = CDate(refdate)
jour = Weekday(debuthiver, vbMonday)
'Le passage à l'heure d'hiver intervient à l'instant:
refdate = (32 - jour) & "/10/" & Year(t0) & " 03:00:00"
Dtchgetehiv = CDate(refdate)
End Function

--

6 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 sept. 2014 à 08:16
0
dindinfb Messages postés 48 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 3 janvier 2015
17 sept. 2014 à 10:12
merci , mais je cherche comment appliquer le code en question , sachant que j'aurai pas un accée internet à l'endroit ou l'appli sera affiché .

--
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 sept. 2014 à 10:24
As-tu au moins regardé le code:

 Private Sub detecter_changementheure()
        'Merci à Egalon pour son code en VB6
        'http://codes-sources.commentcamarche.net/source/24735-calcul-du-decalage-heure-ete-hiver-en-fonction-d-une-date
        Dim seuilete As Date
        Dim seuilhiver As Date
        Dim dteData As Date
        Dim iddate As String
        Dim jour As Integer
        Dim uneDateC As Decimal 'nombre jour depuis début année
        Dim seuileteC As Decimal 'jour debut année heure ete
        Dim seuilhiverC As Decimal 'jour debut année heure d'hiver 
        Dim DateS As String
        Dim DateD As DateTime
        Dim Annee As String
        'mis à jour des dates
        dteData = Now 'today
        Annee = (dteData.ToString("yyyy")) 'année en cours
        'uneDate = CDate(TextBox1.Text)
        iddate = "25/03/" & Annee & " 02:00:00"
        'on est le 25 mars de la même année
        seuilete = CDate(iddate)
        jour = Weekday(seuilete, vbMonday)
        'combien de jours avant d'atteindre le prochain dimanche?
        iddate = (32 - jour) & "/03/" & Annee & " 02:00:00"
        seuilete = CDate(iddate)
        lblete.Text = "Heure d'été:  " & Format(seuilete, "dddd d MMM yyyy")
        '----------------------------------------------------------------------
        'idem mais pour l'heure d'hiver
        'on est le 25 Octobre de la même année
        iddate = "25/10/" & Annee & " 02:00:00"
        seuilhiver = CDate(iddate)
        jour = Weekday(seuilhiver, vbMonday)
        'combien de jours avant d'atteindre le prochain dimanche?
        iddate = (32 - jour) & "/10/" & Annee & " 02:00:00"
        seuilhiver = CDate(iddate)
        lblhiver.Text = "Heure d'hiver: " & Format(seuilhiver, "dddd d MMM yyyy")
        '--------------------------------------------------------------------
        'une petite comparaison
        DateS = ("01/01/" & Annee) 'Saisir une date : on récupère une string
        DateD = CDate(DateS) 'Conversion de la string en DateTime
        uneDateC = DateDiff(DateInterval.Day, DateD, Now) + 1
        seuileteC = DateDiff(DateInterval.Day, DateD, seuilete) + 1 'différence en jours à partir debut d'année a l'heure d'été
        seuilhiverC = DateDiff(DateInterval.Day, DateD, seuilhiver) + 1 'différence en jours  heure d'hiver à la fin de l'année
        lblweek.Text = "Nous sommes la " & DatePart("ww", dteData, vbMonday, vbFirstFourDays) & " ème semaine"
        lbltoday.Text = "Aujourd'hui " & uneDateC & " ème jour de l'année." 'différence en jours
        If lbltoday.Text = "Aujourd'hui 1 ème jour de l'année." Then
            lbltoday.Text = "Aujourd'hui 1 er jour de l'année."
        End If
        If lblweek.Text = "Nous sommes la 1 ème semaine" Then
            lblweek.Text = "Nous sommes la 1 ère semaine"
        End If
        If (seuileteC < uneDateC) And (uneDateC < seuilhiverC) Then
            ete = True
        Else
            ete = False
        End If
    End Sub


Si cela ne détecte pas l'heure d'été ou d'hiver!!!!!!!!!!!!!!!!
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 sept. 2014 à 13:52
Voici comment l'utiliser:

  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        detecter_changementheure()
    End Sub
    Private Sub detecter_changementheure()
         Dim seuilete As Date
        Dim seuilhiver As Date
        Dim dteData As Date
        Dim iddate As String
        Dim jour As Integer
        Dim uneDateC As Decimal 'nombre jour depuis début année
        Dim seuileteC As Decimal 'jour debut année heure ete
        Dim seuilhiverC As Decimal 'jour debut année heure d'hiver 
        Dim DateS As String
        Dim DateD As DateTime
        Dim Annee As String
        'mis à jour des dates
        dteData = Now 'today
        Annee = (dteData.ToString("yyyy")) 'année en cours
        'uneDate = CDate(TextBox1.Text)
        iddate = "25/03/" & Annee & " 02:00:00"
        'on est le 25 mars de la même année
        seuilete = CDate(iddate)
        jour = Weekday(seuilete, vbMonday)
        'combien de jours avant d'atteindre le prochain dimanche?
        iddate = (32 - jour) & "/03/" & Annee & " 02:00:00"
        seuilete = CDate(iddate)
              '-----------------------------------------------------------
        'idem mais pour l'heure d'hiver
        'on est le 25 Octobre de la même année
        iddate = "25/10/" & Annee & " 02:00:00"
        seuilhiver = CDate(iddate)
        jour = Weekday(seuilhiver, vbMonday)
        'combien de jours avant d'atteindre le prochain dimanche?
        iddate = (32 - jour) & "/10/" & Annee & " 02:00:00"
        seuilhiver = CDate(iddate)
        '------------------------------------------------------------------
        'une petite comparaison
        DateS = ("01/01/" & Annee) 'Saisir une date : on récupère une string
        DateD = CDate(DateS) 'Conversion de la string en DateTime
        uneDateC = DateDiff(DateInterval.Day, DateD, Now) + 1
        seuileteC = DateDiff(DateInterval.Day, DateD, seuilete) + 1 'différence en jours à partir debut d'année a l'heure d'été
        seuilhiverC = DateDiff(DateInterval.Day, DateD, seuilhiver) + 1 'différence en jours  heure d'hiver à la fin de l'année
        If (seuileteC < uneDateC) And (uneDateC < seuilhiverC) Then
            MsgBox("je suis en heure d'été")
        Else
            MsgBox("je suis en heure d'hiver")
        End If
    End Sub



Voilà
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 sept. 2014 à 18:06
Vu qu'i n'y a pas d'echo, je vais te faire marcher ta fonction

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dtchgetehiv(Now)
    End Sub
    Function Dtchgetehiv(t0 As Date) As Date
        Dim jour As Integer
        Dim refdate As Object
        Dim debuthiver As Date
        'on se place au 25 Octobre
        refdate = "25/10/" & Year(t0) & " 03:00:00"
        debuthiver = CDate(refdate)
        jour = Weekday(debuthiver, vbMonday)
        'Le passage à l'heure d'hiver intervient à l'instant:
        refdate = (32 - jour) & "/10/" & Year(t0) & " 03:00:00"
        Dtchgetehiv = CDate(refdate)
        MsgBox(Dtchgetehiv)
    End Function


Merci, pas de quoi!
0
Merci a tous, je vous tiens au courant.
0
Rejoignez-nous