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

Lotus Notes Discussion :

Numéro de semaine du mois d'une date


Sujet :

Lotus Notes

  1. #1
    Invité
    Invité(e)
    Par défaut Numéro de semaine du mois d'une date
    Bonjour et bonne année 2016 à tous !

    Je cherche à calculer en langage de formules le numéro de la semaine du mois d'une date. Par exemple pour le 01/01/2016 cela donnerait 0, pour le 04/01/2016 cela donnerait 1, et ainsi de suite les semaines du mois étant numérotées de 0 à 4.

    J'ai essayé une formule

    @Round ( @Integer (DATE_REPAS - @Date (@Year (DATE_REPAS);@Month(DATE_REPAS);1)) / 86400 / 7 ) +1 )

    Mais elle ne donne pas les résultats voulus.

    Est-ce que vous auriez une idée ? C'est dommage que les archives de Domino Area ne soient plus en ligne cela fourmillait de scripts utiles....

    Cordialement.

    Christian
    Dernière modification par Invité ; 04/01/2016 à 08h39.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    J'ai trouvé ceci sur le web :

    @Integer( (@Day(DATE_REPAS) - @Weekday(DATE_REPAS)+13) /7 ) - 1 )

    Ca çà l'air de marcher. Ne me demandez pas pourquoi, aucune idée !

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 676
    Points
    676
    Par défaut
    J'avais cette version:

    EndDate := @Today;
    StartDate := @Adjust(@Today; 0;-@Month(@Today)+1; -@day(@Today)+1;0;0;0);

    Nbre_Semaine := @Abs(@Integer((EndDate - StartDate) / (86400)/7));

    @Text(Nbre_Semaine+1)

    C'est un vieux code , mais ce genre de formule ne doit normalement pas évoluer au cours du temps.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Cette formule ne marche pas car au 8 janvier par exemple elle indique la semaine n°2 alors qu'on est toujours en numéro 1. c'est d'ailleurs pratiquement même formule que j'avais faite mais qui ne marche pas non plus.

    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Consultant Lotus Notes/Domino
    Inscrit en
    Juin 2015
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Lotus Notes/Domino
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 312
    Points : 397
    Points
    397
    Par défaut @Weekday
    Il faut partir de @Weekday et ensuite faire des calculs.

  6. #6
    Membre expérimenté
    Avatar de Jérôme Deniau
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 804
    Points : 1 434
    Points
    1 434
    Billets dans le blog
    32

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Merci Jérôme. Cela m'avance. je dois maintenant calculer le numéro de la semaine non pas dans l'année mais dans le mois.

    Cordialement.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ce script est faux en fait, je l'ai testé et il donne comme numéro de semaine le numéro de semaine 7 pour la date du 4 janvier 2016 par exemple ! Donc il a tout faux....

    Cordialement.

  9. #9
    Membre expérimenté
    Avatar de Jérôme Deniau
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 804
    Points : 1 434
    Points
    1 434
    Billets dans le blog
    32
    Par défaut ;-)
    C'est une piste de départ, si le gars a buggé son code c'est son problème.... Maintenant il suffit de voir à quel endroit il a merdé.

    Mais bon il suffit d'appliquer la formule:

    week(date) = {ordinal(date) - weekday(date) + 10}/{7}
    if, week < 1 then\, week = lastWeek(year-1)
    if, week > lastWeek(year)\, then\, week = 1

    ordinal(date) -> nombre de jour depuis le 1er janvier de l'année de la date et ça en notes c'est facile dateFin - dateJourUn * 86400
    weekday on a la formule
    et le reste aussi sauf lastweek mais bon ça se calcule

    Il faut aussi gérer soit semaine 52 soit semaine 53, etc.....

    voir wikipedia pour ça: https://en.wikipedia.org/wiki/ISO_we...f_a_given_date

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai pris du temps pour vérifier cette formule que j'avais trouvé sur stackoverflow.com :

    @Integer( (@Day(DATE_REPAS) - @Weekday(DATE_REPAS)+13) /7 ) - 1 )

    J'ai généré des documents à tous les jours de semaine jusqu'au 31 décembre 2016 et fait une vue pour comparer la date et le numéro de la semaine du mois.

    Et bien le calcul est juste ! Cela donne le numéro de la semaine dans le mois (une semaine commençant le lundi). J'ai vérifié.

    Ne me demandez pas pourquoi cette formule marche je n'en ai pas le début de la moindre idée. Mais comme disait Einstein :
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    Cordialement.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/02/2012, 14h37
  2. Réponses: 12
    Dernier message: 02/08/2009, 13h18
  3. [MySQL] Calcul numéro de semaine en fonction d'une date
    Par Devilju69 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/06/2009, 20h11
  4. Réponses: 14
    Dernier message: 30/12/2005, 19h31
  5. [Requête] Modifier l'année et le mois d'une date
    Par brazza dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/01/2005, 17h19

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