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

VB 6 et antérieur Discussion :

Conversion Année Semaine NumJour en date


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 6
    Par défaut Conversion Année Semaine NumJour en date
    Bonjour à tous,

    J'utilise la fonction Invdatepart défnie dans le lien http://vb.developpez.com/faq/?page=Dates#invdatepart.

    Cependant lorsque j'execute la fonction avec invdatepart(1,1,2011) elle me retourne "03/01/2011" au lieu de "27/12/2010" (premier jour de la premiere semaine de l'année 2011).

    Pour cela obtenir la date exacte j'ai retiré la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Weekday(tmpDate, vbMonday) < 6 Then
    , et par conséquent je soustrait toujours 1 un au numéro de semaine passé en argument.

    La fonction devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Function InvDatePart(ByVal PosJour As Integer, ByVal NumSemaine As Integer, ByVal Annee As Integer) As Date
     
        tmpDate = CDate("1/1/" & Format$(annee))
        NumSemaine = NumSemaine - 1
        tmpDate = DateAdd("ww", NumSemaine, tmpDate)
        tmpDate = DateAdd("d", PosJour - Weekday(tmpDate, vbMonday), tmpDate)
        Convertir_semaine_date = tmpDate
     
    End Function
    Quelqu'un peut-il me confirmer que la fonction présente dans la FAQ contient une erreur ?

    Merci d'avance.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Fonction tout simplement établie en application de la convention selon laquelle la 1ère semaine d'une année est celle qui contient au moins 4 jours dans la nouvelle année et de la convention de choix du rang n° 1 pour le Lundi
    (norme ISO 8601)

    question de conventions

    Si l'on applique ces deux là ===>> le lundi 03/01/2011 est bien le 1er jour de la 1ère semaine de l'année 2011

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 6
    Par défaut
    Merci de votre réponse.

    En effet j'ai oublié de préciser que dans mon calcul le 1 janvier de chaque année fait toujours parti de la semaine 1.

    J'ai pris comme base le calendrier d'outlook.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Tu ne respectes donc pas la norme ISO !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 6
    Par défaut
    Cepedant pour respecter la norme iso (4 jours complets) il faut que weekday soit inférieur à 5 et non à 6 dans la fonction.

    Confirmation ?

Discussions similaires

  1. [2008R2] Problème de date en année / semaine
    Par softeur dans le forum Développement
    Réponses: 3
    Dernier message: 08/11/2014, 15h18
  2. Réponses: 9
    Dernier message: 21/07/2010, 08h43
  3. Créer date depuis Année/Semaine/JourSem
    Par milka dans le forum Oracle
    Réponses: 8
    Dernier message: 23/11/2006, 14h31
  4. Réponses: 8
    Dernier message: 29/09/2006, 18h09
  5. récuperer année d'un champ date
    Par tomm dans le forum Bases de données
    Réponses: 11
    Dernier message: 12/05/2004, 16h24

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