Jump to content
  • 0

Calcul Date Dernier Jour Du Mois


danny@m803.ca
 Share

Question

Bonjour,

j'ai créer un calcul pour incrémenter une rubrique globale qui contiens une date donnée (ex.: 2011-01-31)

Mon calcul:

Date ( Mois ( Connaissement::Date limite_objectifs ) + 1; Jour ( Connaissement::Date limite_objectifs ); Annee ( Connaissement::Date limite_objectifs ))

Ça fonctionne, sauf que ça ne tiens pas compte des mois de 28 jours ou 31 jours.....donc si j'actionne le script qui contiens ce calcul sur la rubrique "date limite_objectifs", le résultat est "2011-03-03"

Comment faire pour que la date suivante soit le dernier jour du moi suivant?

Merci

Link to comment
Share on other sites

24 answers to this question

Recommended Posts

  • 0

Bonsoir,

pour calculer le dernier jour d'un mois, tu peux te servir de ceci

Date ( Mois ( MaDate ) + 1 ; 0 ; Annee ( MaDate ) )

Je n'ai pas compris si ton calcul doit avancer de mois en fin de mois ou autre

Agnès

Link to comment
Share on other sites

  • 0

salut ami canadien

un calcul comme ça considèrera les 4 derniers jours du mois relativement au dernier jour du mois.

c'est à dire que le 28/01 sera considéré comme 31/01 - 3, le 29/01 comme 31/01 - 2 etc.

pourquoi 4 derniers jours : par rapport au 28 février.

voici le calcul

 Definir ( [_date =obtenirdate ( Connaissement::Date limite_objectifs ) ;A = Annee ( _date );M = Mois ( _date ) ;J = Jour ( _date ) ;nouvelle_date = Date ( M +1 ; J ; A ) ;dern_jour =  Date ( M +2 ; 0 ; A )];Cas ( J  ≥ Jour (  Date ( M +1 ; 0 ; A ) ) - 3 ; dern_jour - (  Date ( M +1 ; 0 ; A ) - _date ) ; nouvelle_date  ) )

edit: coucou Agnès moi j'ai mis Date ( M +2 ; 0 ; A )pour le dernier jour du mois suivant :hello:

Link to comment
Share on other sites

  • 0

+2 ou +1, idem, moi, sans une règle, je ne joue pas

Pourquoi le 27/01 donne le 27/02 et le 28/01 donne le 25/01 ?

ton histoire des 4 jours, c'est curieux quand même

donc, j'attends de savoir ce que doit faire le calcul :rolleyes:

Dans le titre, on cherche le dernier jour, dans le post, on incrémente... de ?

trop flou ;)

Bonne soirée

Agnès

Link to comment
Share on other sites

  • 0

Bon, je joue sans les règles, en direct

Si c'est incrémenter de 30 jours quelque soit la date, sans dépasser la date de fin de mois

soit

le 2/1 doit Donner le 2/2 idem pour le 28/01 qui donne le 28/02 et ça se corse pour le 29/01 qui doit donner le 28/02 si le 29 n'existe pas

même si ce raisonnement me parait illogique et il me semble qu'on recherche juste la fin de mois... mais bon, admettons ( comme la chauve souris )

je me baserais sur le nombre de jour total du mois suivant puisqu'on peut le connaitre, et si mon jour de ma date dépasse ce jour là, ben je le restreins à ce jour là, ça va donner grosso modo ça

Definir ([MaDate =ObtenirDate ( md ) ;LastDay = Date ( Mois ( MaDate ) + 1; Jour ( MaDate ); Annee ( MaDate ))];Case ( Jour ( LastDay ) ≥ Jour ( MaDate ) ; LastDay ;Date ( Mois ( MaDate ) + 2; 0 ; Annee ( MaDate )) ))

avec le +2 puisque l'on recherche le mois d'après, le +1, pour le titre, on recherche le dernier jours du mois en cours :rolleyes:

Link to comment
Share on other sites

  • 0

Date ( 12 ; 31 ; Annee ( Date ))

Ça, c'est le dernier jour de l'année.

Date ( 12 ; 31 ; Debut ( Annee ( Date ) ; 2 ) * 100 )

C'est pour le dernier jour du siècle.

Et ça c'est une excellente lecture.

Link to comment
Share on other sites

  • 0

ouais t'a raison pas au point ce calcul

parce que le 27/01 va effectivement donner le 27/02 comme le 30/01.

va falloir trouver une règle spéciale pour février, genre les 3 ou 4 derniers jours de janvier (années bissextiles) seront transformés en 28 ou 29/02 ?

Link to comment
Share on other sites

  • 0

Dites, vous avez abusez de la Suze, ou c'est moi qui ne sait plus lire ce Forum.

Il ne demande pas 4 jours, il me semble qu'il constate juste que son calcul produit un écart de 4 jours.

Let ( [

_date = Date ( 1 ; 31 ; 2011 )

] ;

Date ( Mois ( _date) + 1; Jour ( _date ); Annee ( _date )

)

)

>> 03/03/2011

Donc si vous voulez lui rajouter 4 jours, à vous de voir, mais il me semble qu'il n'y a pas trop de jeu, à moins que vous aimiez rallonger le fils ;)

En gros, vous me fatiguez avec tous ce fils longs et autres devinettes subtiles......... ;)

Link to comment
Share on other sites

  • 0

et pourquoi pas calculer le premier jour du vois suivant et faire - 1 jour en format date ? le résultat devrais toujours être bon quelque soit le mois et l'année

Link to comment
Share on other sites

  • 0

rigolo chauve souris comme surnom, chuis au radar quoi ! !

bon c'est vrai, je sais pas pourquoi j'ai été chercher ces 4 jours.

peut-être que je m'imaginais à tort que la " date donnée" de Danny pouvait aussi concerner d'autres jours que le dernier jour du mois, et dans ce cas se posait le pb des 4 derniers jours.

Désolé si je perturbe le propos.

M'en vais dormir ça ira mieux

Link to comment
Share on other sites

  • 0

houla ! non ! le "chauve souris" est juste là pour le "admettons", même pas une histoire de code qui doit faire 4 chiffres :rolleyes::)

Link to comment
Share on other sites

  • 0

Je pense qu'avec le calcule suivant tu devrais avoir ton compte et ce quelque sois l'année et le mois:

Date ( Mois ( date ) + 1 ; 1 ; Annee ( date ) ) -1

Link to comment
Share on other sites

  • 0

On revient à la mode du fil de discussion récursif. Voyons combien d'itérations Olivier (le vilain modo) va supporter :)

Link to comment
Share on other sites

  • 0

Merci pour vos nombreuses réponses

en réponse à Agnès, je précice à quoi sert mon calcul:

Dans notre base de donnée clients, j'ajoute un compteur pour encourager les représentants à vendre plus et surtout a atteindre les objectifs qui sont par mois...

...J'ai une rubrique "objectif_État" et une "objectif_Mois"..à chaque fois qu'il y a une vente "objectif_État" s'incrémente +1. "objectif_Mois" c'est le patron qui entre la donnée dedans 1 fois par mois.

Pour que "objectif_État" s'incrémente de +1, un script se réfère à la date d'acceptation du contrat

La rubrique "date limite objectif" ,dont on parle ici, sert a remettre le compteur à Zero, ...dans cette rubrique doit être affiché le dernier jour du moi (le titre de la rubrique est "Objectif jusqu'au..."

Pour limiter les interventions humaine, je souhaiterais que cette rubrique s'incrémente automatiquement à chaque mois.

Link to comment
Share on other sites

  • 0

J'ai trouvé!!! :blink:

J'ai suivie la voie d'Esaïe

voici le calcul (pour que ça fonctionne, il est nécessaire que la date de départ soit le dernier jour d'un mois ...n'importe laquel)

Date (Mois (Connaissement::Date limite_objectifs_LDC) + 2;1;Annee((Connaissement::Date limite_objectifs_LDC)))-1

De cette façon, ça tombe automatiquement au dernier jour du mois en respectant février, lews mois de 30 et de 31 jours

Merci à tous :bien:

Link to comment
Share on other sites

  • 0

Je sais bien que les pixels coutent moins cher que le papier, mais re-regarde la première réponse qui t'a été faite, c'est la même.

Link to comment
Share on other sites

  • 0

bonjour,

c'est en effet equivalent à

Date ( Mois (Connaissement::Date limite_objectifs_LDC) +2 ; 0 ; Annee( Connaissement::Date limite_objectifs_LDC) )
Link to comment
Share on other sites

  • 0

Alors je viens de réaliser une petite formule qui je le pense apporte la réponse à cette question pas triviale, à savoir de découvrir 

le dernier jour d'un mois. Pour cela il est nécessaire de penser au 1er jour du mois suivant et de retirer un jour. En tenant compte que pour le dernier mois, soit décembre, on a de toute manière 31 jours:

Date (

Mois ( madate );

SI (Mois ( madate ) = 12;"31";

Jour(

Date(  Mois(( madate )+1) ; 1 ; Annee( madate )) -1 )

);

Annee ( madate ) )

 

 

Link to comment
Share on other sites

  • 0

Merci @ymeyer pour ce témoignage, mais… :)

Le 04/04/2011 à 22:34, Agnès a dit :

Bonsoir,

pour calculer le dernier jour d'un mois, tu peux te servir de ceci

Date ( Mois ( MaDate ) + 1 ; 0 ; Annee ( MaDate ) )

Je n'ai pas compris si ton calcul doit avancer de mois en fin de mois ou autre

Agnès

Link to comment
Share on other sites

  • 0

Merci, donc il suffit de spécifier 0 comme jour pour obtenir le premier jour du mois 😉 J'aimais bien ma formule, mais je dois reconnaitre qu'elle est plus compliquée !

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...