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

WinDev Discussion :

Changement d'heure hiver


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut Changement d'heure hiver
    Bonjour,

    je me demande si il existe une fonction qui calcul le jour du changement d'heure.

    j'ai pensé faire un mélange de fonction en utilisant DernierJourDeLaSemaine() et DernierJourDuMois() pour calculer le dernier dimanche du mois de mars et d'octobre (où a lieu le changement d'heure)
    Le truc c'est que je ne sais pas trop comment poser ça sous windev !!!!

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 69
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Si c'est pour que tu puisses faire toi-même la modification de l'heure après, tu peux utiliser plus simplement, HeureSys() normalement il te donnera toujours la bonne heure.

    En espérant t'avoir aidé
    Térence01

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    Non en fait j'ai une table avec des horaires d'ouverture hiver et été

    j'aimerais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SI Datesys() = dernier dimanche du mois de mars ALORS
    dans ma table horaire, je sélectionne ma ligne hiver et je mets actif à 0
    je sélectionne ma ligne été et je mets actif à 1
    FIN
     
    SI Datesys() = dernier dimanche du mois d'Octobre ALORS
    dans ma table horaire, je sélectionne ma ligne hiver et je mets actif à 1
    je sélectionne ma ligne été et je mets actif à 0
    FIN
    Voila dans le principe ce que j'aimerais faire mais je n'arrive pas a trouver l'imbrication des 2 fonctions pour tester le dernier dimanche du mois

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 69
    Points : 50
    Points
    50
    Par défaut
    D'accord je me doutais que c'était ça mais j'étais pas sûr.

    Je n'ai pas trouvé de méthode pour chercher le jour exact dans les mois (enfin la date).

    J'ai peut-être une autre idée si ça t'intéresse. C'est un peu fastidieux mais à toi de voir si tu veux faire comme ça.

    -Alors tu crées un fichier de données et dedans tu mets 1 rubrique au format date.
    -Dans cette rubrique tu mets chaque changement d'heure (tu prends un calendrier chez toi, sur ton ordi et tu notes tous les jours où il y aura le changement d'heure, tu fais ça sur les 30 ans à venir peut-être, tu peux aller jusqu'en 2099 avec les calendriers sur ordinateur, ça suffira amplement je pense d'ici là les applications auront évoluées ^^)
    -Une fois tous tes changements d'heure trouvés tu les mets dans le tableau en les alternant :
    *changement date mars
    *changement date octobre
    *changement date mars
    *changement date octobre
    *Ainsi de suite...

    Ensuite tu fais une sorte de comparaison entre ta première ligne de ton fichier de données et la date du jour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    HOuvre(Fichier de données)
    HLitPremier(Fichier de données)
    Si DateDujour <> (différent) 1ère Ligne du fichier de données ALORS
           Reste sur les horaires d'ouvertures
    SINON 
    Si DateDuJour = 1ère Ligne du fichier de données ALORS
           Change les horaires d'ouverture
           HSupprime(1ère Ligne du fichier de données)
    FIN

    Ainsi tu compares tout le temps que la 1ère ligne du fichier de données qui contiendra toujours le prochain changement d'heure


    Voilà, ça risque d'être long mais ça peut peut-être marcher, tiens moi au courant si tu appliques cette méthode

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    j'avais déjà pensé a rechercher tous les jours de changement d'heure mais j'aurai aimé avoir un peu plus d'automatisme.

    Quand je vois que wd est capable de calculer la date du lundi de pâque, je pense qu'un dimanche en fin de mois ne devrait pas être plus compliqué !

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 69
    Points : 50
    Points
    50
    Par défaut
    Je pense aussi mais là je sèche ^^
    Je sais pas du tout comment t'aider

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    Vous êtes sur la bonne voie. Mais une petite modification de votre raisonnement serait plus simple je pense....

    Avant de "coder", Il faut juste clarifier votre pensée et cela viendra tout seul.
    Question : comment connaitre le dernier dimanche du mois X ?


    De ce que je lis, votre approche est de connaitre le dernier jour du mois.
    Admettons... le 31/03/14.

    De là combien de possibilité avez-vous ?
    - Soit le 31 tombe un dimanche
    - Soit le 31 n'est pas un dimanche

    Si c'est un dimanche, votre problème est résolu...
    Par contre, si ce n'est pas un dimanche, c'est le dimanche de la semaine précédente qui nous intéresse...

    [HUMOUR ON]
    La nouvelle question est : Comment trouver le dimanche précédent ? (beaucoup de méthode sont possible, je vous mets une piste de solution en cacher
    Il faut utiliser :
    PremierJourDeLaSemaine()(--> on sera Lundi)
    Puis décrémenter 1 jour (on tombe sur le dimanche de la semaine précédente)


    [HUMOUR OFF]

    PS : si si, la réponse est dans le post... faut juste trouver comment là faire apparaître

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    Je suis vraiment le premier qui voudrais faire ça ????

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 69
    Points : 50
    Points
    50
    Par défaut
    Vraiment astucieuse la méthode pour trouver le dimanche d'avant, normalement ça devrait fonctionner !

    @cid5420 : je pense pas, il y en a qui ont dû le faire avant ^^

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    Heureusement pour moi je ne suis pas nooby sur le développement web

    Merci "firebug"

    Donc je suis ravis d'avoir eu quand même un bon raisonnement il fallait aller plus loin donc je vais écrire une fonction pour ça et je vous la met dès que celle-ci fonctionne

  11. #11
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Firebug est peut être une usine à gaz pour trouver le spoil, il suffit de savoir utiliser la souris
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    Quelle moment de solitude !!!!!!

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    J'ai oublié de préciser, au cas si ça peut vous aidez, il existe une fonction Windev pour connaitre le jour de la semaine :
    http://doc.pcsoft.fr/fr-FR/?3027008&name=entierversjour_fonction&product=WB


    Donc on peut identifier rapidement si le 31 est un dimanche ou pas....

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    Bon j'ai un bout de code qui semble fonctionner (juste un prob d'affichage de la date mais rien de grave)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nDernierJM est un entier = DateVersEntier(DernierJourDuMois())
    nDernierJS est un entier = DateVersEntier(DernierJourDeLaSemaine(DernierJourDuMois()))
    dateDim est une Date = PremierJourDeLaSemaine(DernierJourDuMois())
    SI nDernierJM = nDernierJS ALORS
    	LIB_SansNom1 = "Le dernier jour du mois tombe un dimanche"
    SINON
    	LIB_SansNom1 = "Le dernier jours du mois n'est pas un dimanche"
    	dDernierDimanche est une Date = dateDim..Jour - 1
    	LIB_SansNom2="Le dernier dimanche du mois tombe le  "+dDernierDimanche
    FIN

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Alors sur votre code, si je peux me permettre :

    Citation Envoyé par cid5420 Voir le message
    Bon j'ai un bout de code qui semble fonctionner (juste un prob d'affichage de la date mais rien de grave)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nDernierJM est un entier = DateVersEntier(DernierJourDuMois()) <-- Attention avec ce code, vous ne travaillez que sur la date en cours
    nDernierJS est un entier = DateVersEntier(DernierJourDeLaSemaine(DernierJourDuMois())) <-- Attention avec ce code, vous ne travaillez que sur la date en cours
    dateDim est une Date = PremierJourDeLaSemaine(DernierJourDuMois())
    SI nDernierJM = nDernierJS ALORS <-- voir ma remarque plus haut avec la fonction EntierVersJour() le test sera plus d'autant plus lisible avec l'utilisation de constante
    	LIB_SansNom1 = "Le dernier jour du mois tombe un dimanche"
    SINON
    	LIB_SansNom1 = "Le dernier jours du mois n'est pas un dimanche"
    	dDernierDimanche est une Date = dateDim..Jour - 1 <-- Attention vous récupérez uniquement la partie "jour" et pas la date complète avec ce code, vous avez fait un raccourci de trop, dans un premier temps, faites un code fonctionnel, donc plus verbeux, puis une fois validé, vous pouvez vous attaquez à la refactorisation pour diminuer le nombre de ligne ou optimiser le code
    	LIB_SansNom2="Le dernier dimanche du mois tombe le  "+dDernierDimanche
    FIN

  16. #16
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Points : 58
    Points
    58
    Par défaut
    oui il est vrai qu'on peut améliorer ce code. Dans cet exemple je suis sur une date en cours il est évident !
    C'est juste un code de test, j'ai également fait un test avec un champs de saisie de type date voir les fonctions avec une date en plus !!!

    Quand je disais que j'avais un prob d'affichage de la date, je n'ai pas fait attention que je travaillais uniquement sur le jour lorsque je décrémente !!! (merci pour cette remarque)

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Voici une version "générique" de votre demande :

    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
     
    pnJourChercher attend 1,2,3...,7 (1 étant le Lundi et 7 le dimanche)
     
    PROCEDURE dateDernierJourDuMois(pnJourChercher, pnAnnee, pnMois)
     
    dDernierJM est une Date
    nJourDeLaSemaine est un entier
    dRetour est une Date
     
    dDernierJM = DernierJourDuMois(pnAnnee, pnMois) //Récupère la date du dernier jour du mois
    nJourDeLaSemaine = EntierVersJour(dDernierJM) // Récupère le jour du dernier jour du mois
     
    dRetour = dDernierJM 
     
    SELON Vrai
    	CAS pnJourChercher > nJourDeLaSemaine : dRetour..Jour -= (7 - (pnJourChercher - nJourDeLaSemaine))
    	CAS pnJourChercher < nJourDeLaSemaine : dRetour..Jour -= (nJourDeLaSemaine - pnJourChercher)
    	AUTRE CAS				
    FIN
     
    RENVOYER dRetour
    je n'ai pas testé, mais ça devrait être ça, j'ai juste un doute sur un décalage d'un jour ou pas... avec les soustractions de date, je ne suis jamais sûr.....

  18. #18
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Bonjour,

    Je ne suis pas spécialiste des API, mais y aurait pas un truc du genre GetTimeZoneInformation() qui indique si
    le PC est à l'heure d'été ?
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Discussions similaires

  1. [AC-2007] Changement d'heure été /hiver
    Par kedmard dans le forum VBA Access
    Réponses: 5
    Dernier message: 18/06/2012, 10h25
  2. Réponses: 2
    Dernier message: 26/10/2008, 07h34
  3. boost::thread, sleep et changement d'heure
    Par lebaste77 dans le forum Boost
    Réponses: 8
    Dernier message: 11/02/2008, 16h59
  4. détecter le changement d'heure systeme
    Par firejocker dans le forum Visual C++
    Réponses: 7
    Dernier message: 15/05/2007, 17h01

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