Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SP&B
"Laurent" a écrit dans le message de news:bo3vvv$pp4$
Sous WINDEV Je n'arrive pas à calculer le nombre de mois entre deux dates (je
n'obtiends
que le nbre de jours). merci pour vos solutions.
Bonjour,
Un petit morceau de code pour vous mettre sur la voie :
date1, date2 sont des Dates eMois est un entier date1 = DateDuJour() date2 = date1 date2..Mois = date2..Mois - 5 eMois = date1..Mois - date2..Mois Info("Il y a " + eMois + " mois de différence entre " + date1 + " et " + date2) // Attention ce code ne gère pas le changement d'année
La manière complète pour gérer ce genre de différence : // Ce code permet de calculer l'ancienneté d'un salarié DateEntree est une Date DateSortie est une Date DateSortie = "00000000" // Dans la pratique cette information se trouve dans le fichier du salarié. DateEntree = "19990212" // Dans la pratique cette information se trouve dans le fichier du salarié. SI DateValide(DateEntree) ALORS cMois est un réel cMois = 365.25 / 12 nAnnee est un entier nMois est un entier nJour est un entier nDate est un entier SI DateValide(DateSortie) ALORS nDate = DateVersEntier(DateSortie) - DateVersEntier(DateEntree) SINON nDate = DateVersEntier(DateSys()) - DateVersEntier(DateEntree) FIN nAnnee = PartieEntière(nDate / 365.25) nMois = PartieEntière((nDate - (nAnnee * 365.25))/cMois) nJour = PartieEntière(((nDate - (nAnnee * 365.25))) - (nMois * cMois)) Info("Ancienneté : " + nAnnee + " an(s) " + nMois + " mois " + nJour + " jour(s)") // Pour n'obtenir que le mois : Info("Nombre de mois : " + nMois) SINON Info( "Date d'entrée inconnue !") FIN
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
"Laurent" <l.rougier@wanadoo.fr> a écrit dans le message de
news:bo3vvv$pp4$1@news-reader5.wanadoo.fr...
Sous WINDEV
Je n'arrive pas à calculer le nombre de mois entre deux dates (je
n'obtiends
que le nbre de jours).
merci pour vos solutions.
Bonjour,
Un petit morceau de code pour vous mettre sur la voie :
date1, date2 sont des Dates
eMois est un entier
date1 = DateDuJour()
date2 = date1
date2..Mois = date2..Mois - 5
eMois = date1..Mois - date2..Mois
Info("Il y a " + eMois + " mois de différence entre " + date1 + " et " +
date2)
// Attention ce code ne gère pas le changement d'année
La manière complète pour gérer ce genre de différence :
// Ce code permet de calculer l'ancienneté d'un salarié
DateEntree est une Date
DateSortie est une Date
DateSortie = "00000000" // Dans la pratique cette information se trouve dans
le fichier du salarié.
DateEntree = "19990212" // Dans la pratique cette information se trouve dans
le fichier du salarié.
SI DateValide(DateEntree) ALORS
cMois est un réel
cMois = 365.25 / 12
nAnnee est un entier
nMois est un entier
nJour est un entier
nDate est un entier
SI DateValide(DateSortie) ALORS
nDate = DateVersEntier(DateSortie) - DateVersEntier(DateEntree)
SINON
nDate = DateVersEntier(DateSys()) - DateVersEntier(DateEntree)
FIN
nAnnee = PartieEntière(nDate / 365.25)
nMois = PartieEntière((nDate - (nAnnee * 365.25))/cMois)
nJour = PartieEntière(((nDate - (nAnnee * 365.25))) - (nMois * cMois))
Info("Ancienneté : " + nAnnee + " an(s) " + nMois + " mois " + nJour + "
jour(s)")
// Pour n'obtenir que le mois :
Info("Nombre de mois : " + nMois)
SINON
Info( "Date d'entrée inconnue !")
FIN
Sincères salutations.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie
SPetB_no.spam@wanadoo.fr
enlever _no.spam pour me contacter en PV.
http://perso.wanadoo.fr/securite.pointage.et.biometrie/
"Laurent" a écrit dans le message de news:bo3vvv$pp4$
Sous WINDEV Je n'arrive pas à calculer le nombre de mois entre deux dates (je
n'obtiends
que le nbre de jours). merci pour vos solutions.
Bonjour,
Un petit morceau de code pour vous mettre sur la voie :
date1, date2 sont des Dates eMois est un entier date1 = DateDuJour() date2 = date1 date2..Mois = date2..Mois - 5 eMois = date1..Mois - date2..Mois Info("Il y a " + eMois + " mois de différence entre " + date1 + " et " + date2) // Attention ce code ne gère pas le changement d'année
La manière complète pour gérer ce genre de différence : // Ce code permet de calculer l'ancienneté d'un salarié DateEntree est une Date DateSortie est une Date DateSortie = "00000000" // Dans la pratique cette information se trouve dans le fichier du salarié. DateEntree = "19990212" // Dans la pratique cette information se trouve dans le fichier du salarié. SI DateValide(DateEntree) ALORS cMois est un réel cMois = 365.25 / 12 nAnnee est un entier nMois est un entier nJour est un entier nDate est un entier SI DateValide(DateSortie) ALORS nDate = DateVersEntier(DateSortie) - DateVersEntier(DateEntree) SINON nDate = DateVersEntier(DateSys()) - DateVersEntier(DateEntree) FIN nAnnee = PartieEntière(nDate / 365.25) nMois = PartieEntière((nDate - (nAnnee * 365.25))/cMois) nJour = PartieEntière(((nDate - (nAnnee * 365.25))) - (nMois * cMois)) Info("Ancienneté : " + nAnnee + " an(s) " + nMois + " mois " + nJour + " jour(s)") // Pour n'obtenir que le mois : Info("Nombre de mois : " + nMois) SINON Info( "Date d'entrée inconnue !") FIN
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
Laurent Imbert
Le hic, c'est veut tu les mois réel ou le nombre de mois possible Réel : 31 avril au 1 juin donne 3 mois différent Possible : 31 avril au 1 juin donne 2 2 mois possible
"SP&B" a écrit dans le message de news:bo44f5$c68$
> // Pour n'obtenir que le mois : > Info("Nombre de mois : " + nMois) > SINON > Info( "Date d'entrée inconnue !") > FIN >
Bonjour,
Dans mon post précédent, modifier cette ligne pour avoir :
// Pour n'obtenir que les mois : Info(nMois + (nAnnee * 12) + " Mois")
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
Le hic, c'est veut tu les mois réel ou le nombre de mois possible
Réel : 31 avril au 1 juin donne 3 mois différent
Possible : 31 avril au 1 juin donne 2 2 mois possible
"SP&B" <SPetB_no.spam@wanadoo.fr> a écrit dans le message de
news:bo44f5$c68$1@news-reader2.wanadoo.fr...
> // Pour n'obtenir que le mois :
> Info("Nombre de mois : " + nMois)
> SINON
> Info( "Date d'entrée inconnue !")
> FIN
>
Bonjour,
Dans mon post précédent, modifier cette ligne pour avoir :
// Pour n'obtenir que les mois :
Info(nMois + (nAnnee * 12) + " Mois")
Sincères salutations.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie
SPetB_no.spam@wanadoo.fr
enlever _no.spam pour me contacter en PV.
http://perso.wanadoo.fr/securite.pointage.et.biometrie/
Le hic, c'est veut tu les mois réel ou le nombre de mois possible Réel : 31 avril au 1 juin donne 3 mois différent Possible : 31 avril au 1 juin donne 2 2 mois possible
"SP&B" a écrit dans le message de news:bo44f5$c68$
> // Pour n'obtenir que le mois : > Info("Nombre de mois : " + nMois) > SINON > Info( "Date d'entrée inconnue !") > FIN >
Bonjour,
Dans mon post précédent, modifier cette ligne pour avoir :
// Pour n'obtenir que les mois : Info(nMois + (nAnnee * 12) + " Mois")
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
SP&B
"Laurent Imbert" a écrit dans le message de news:bo5ecf$b63$
Le hic, c'est veut tu les mois réel ou le nombre de mois possible Réel : 31 avril au 1 juin donne 3 mois différent Possible : 31 avril au 1 juin donne 2 2 mois possible
Bonjour, Moi je ne veux rien, vous avez posé une question et j'ai essayé de vous donner des éléments de réponse avec du code qui fonctionne, à vous de l'adapter à votre cas, mais cela m'amène à plusieurs remarques concernant votre réponse : - 1°/ Je ne connais pas encore de 31 avril, donc date fausse, provoquant une erreur. - 2°/ La difference en mois entre le 30 avril et le 1er juin est de un mois (exactement de 1 mois et 3 jours si l'on prend en dates incluses et si on voulait être encore plus précis de 1.0841889117043121149897330595483 mois) et non de 2.2 ou 3. - 3°/ 2.2 mois n'existe pas vraiment, un mois c'est un mois (soit 30 jours, ou pour être plus précis l'arrondi de 365.25/12) et la difference en mois entre deux dates est (en principe) une valeur entière.
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
"Laurent Imbert" <limbert@laurie-lumiere.fr> a écrit dans le message de
news:bo5ecf$b63$1@news-reader1.wanadoo.fr...
Le hic, c'est veut tu les mois réel ou le nombre de mois possible
Réel : 31 avril au 1 juin donne 3 mois différent
Possible : 31 avril au 1 juin donne 2 2 mois possible
Bonjour,
Moi je ne veux rien, vous avez posé une question et j'ai essayé de vous
donner des éléments de réponse avec du code qui fonctionne, à vous de
l'adapter à votre cas, mais cela m'amène à plusieurs remarques concernant
votre réponse :
- 1°/ Je ne connais pas encore de 31 avril, donc date fausse, provoquant une
erreur.
- 2°/ La difference en mois entre le 30 avril et le 1er juin est de un mois
(exactement de 1 mois et 3 jours si l'on prend en dates incluses et si on
voulait être encore plus précis de 1.0841889117043121149897330595483 mois)
et non de 2.2 ou 3.
- 3°/ 2.2 mois n'existe pas vraiment, un mois c'est un mois (soit 30 jours,
ou pour être plus précis l'arrondi de 365.25/12) et la difference en mois
entre deux dates est (en principe) une valeur entière.
Sincères salutations.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie
SPetB_no.spam@wanadoo.fr
enlever _no.spam pour me contacter en PV.
http://perso.wanadoo.fr/securite.pointage.et.biometrie/
"Laurent Imbert" a écrit dans le message de news:bo5ecf$b63$
Le hic, c'est veut tu les mois réel ou le nombre de mois possible Réel : 31 avril au 1 juin donne 3 mois différent Possible : 31 avril au 1 juin donne 2 2 mois possible
Bonjour, Moi je ne veux rien, vous avez posé une question et j'ai essayé de vous donner des éléments de réponse avec du code qui fonctionne, à vous de l'adapter à votre cas, mais cela m'amène à plusieurs remarques concernant votre réponse : - 1°/ Je ne connais pas encore de 31 avril, donc date fausse, provoquant une erreur. - 2°/ La difference en mois entre le 30 avril et le 1er juin est de un mois (exactement de 1 mois et 3 jours si l'on prend en dates incluses et si on voulait être encore plus précis de 1.0841889117043121149897330595483 mois) et non de 2.2 ou 3. - 3°/ 2.2 mois n'existe pas vraiment, un mois c'est un mois (soit 30 jours, ou pour être plus précis l'arrondi de 365.25/12) et la difference en mois entre deux dates est (en principe) une valeur entière.
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
Fabrice Burghgraeve
salut .
"SP&B" a écrit dans le message de news:bo5l7c$bs1$
"Laurent Imbert" a écrit dans le message de news:bo5ecf$b63$ > Le hic, c'est veut tu les mois réel ou le nombre de mois possible > Réel : 31 avril au 1 juin donne 3 mois différent > Possible : 31 avril au 1 juin donne 2 2 mois possible
(...)
- 2°/ La difference en mois entre le 30 avril et le 1er juin est de un
mois
(exactement de 1 mois et 3 jours si l'on prend en dates incluses et si on voulait être encore plus précis de 1.0841889117043121149897330595483 mois) et non de 2.2 ou 3.
Ca depend de ce qu'on appelle un mois, et IMHO, ta definition de 365.25 / 12 jours est la plus juste.
Cela dit, en complement de ta reponse, si on veut ce que Laurent Imber appelle des "mois reels" (???? en opposition aux mois fictifs ???), c'est facile. il suffit de considerer les numeros des mois. (si c'est pas la meme annee, je laisse deviner le calcul compliqué qui deduit le nombre de mois pour un certains nombre d'annees ;-) )
- 3°/ 2.2 mois n'existe pas vraiment, un mois c'est un mois (soit 30
jours,
ou pour être plus précis l'arrondi de 365.25/12) et la difference en mois entre deux dates est (en principe) une valeur entière.
la pas d'accord. On peut avoir acheté sa voiture il y a deux mois et demi...
De toute facon, la question la plus difficile dans ce probleme, c'est : c'est quoi un mois ? (parce que si on compte le nombre de mois en prenant comme unite un mois de fevrier de 28 jours...Pourtant Fevrier est un mois)
Et la, comme tu dis : <<à vous de l'adapter à votre cas>>
Sincères salutations. -- Jean-Claude FLAJOULOT
(...)
-- Fabrice Burghgraeve Computer & Services suivez ce lien pour me repondre en prive : http://cerbermail.com/?I3GMPRuXDD
salut .
"SP&B" <SPetB_no.spam@wanadoo.fr> a écrit dans le message de
news:bo5l7c$bs1$1@news-reader1.wanadoo.fr...
"Laurent Imbert" <limbert@laurie-lumiere.fr> a écrit dans le message de
news:bo5ecf$b63$1@news-reader1.wanadoo.fr...
> Le hic, c'est veut tu les mois réel ou le nombre de mois possible
> Réel : 31 avril au 1 juin donne 3 mois différent
> Possible : 31 avril au 1 juin donne 2 2 mois possible
(...)
- 2°/ La difference en mois entre le 30 avril et le 1er juin est de un
mois
(exactement de 1 mois et 3 jours si l'on prend en dates incluses et si on
voulait être encore plus précis de 1.0841889117043121149897330595483 mois)
et non de 2.2 ou 3.
Ca depend de ce qu'on appelle un mois, et IMHO, ta definition de 365.25 / 12
jours est la plus juste.
Cela dit, en complement de ta reponse,
si on veut ce que Laurent Imber appelle des "mois reels" (???? en opposition
aux mois fictifs ???), c'est facile.
il suffit de considerer les numeros des mois.
(si c'est pas la meme annee, je laisse deviner le calcul compliqué qui
deduit le nombre de mois pour un certains nombre d'annees ;-) )
- 3°/ 2.2 mois n'existe pas vraiment, un mois c'est un mois (soit 30
jours,
ou pour être plus précis l'arrondi de 365.25/12) et la difference en mois
entre deux dates est (en principe) une valeur entière.
la pas d'accord.
On peut avoir acheté sa voiture il y a deux mois et demi...
De toute facon, la question la plus difficile dans ce probleme, c'est :
c'est quoi un mois ?
(parce que si on compte le nombre de mois en prenant comme unite un mois de
fevrier de 28 jours...Pourtant Fevrier est un mois)
Et la, comme tu dis : <<à vous de l'adapter à votre cas>>
Sincères salutations.
--
Jean-Claude FLAJOULOT
(...)
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
"SP&B" a écrit dans le message de news:bo5l7c$bs1$
"Laurent Imbert" a écrit dans le message de news:bo5ecf$b63$ > Le hic, c'est veut tu les mois réel ou le nombre de mois possible > Réel : 31 avril au 1 juin donne 3 mois différent > Possible : 31 avril au 1 juin donne 2 2 mois possible
(...)
- 2°/ La difference en mois entre le 30 avril et le 1er juin est de un
mois
(exactement de 1 mois et 3 jours si l'on prend en dates incluses et si on voulait être encore plus précis de 1.0841889117043121149897330595483 mois) et non de 2.2 ou 3.
Ca depend de ce qu'on appelle un mois, et IMHO, ta definition de 365.25 / 12 jours est la plus juste.
Cela dit, en complement de ta reponse, si on veut ce que Laurent Imber appelle des "mois reels" (???? en opposition aux mois fictifs ???), c'est facile. il suffit de considerer les numeros des mois. (si c'est pas la meme annee, je laisse deviner le calcul compliqué qui deduit le nombre de mois pour un certains nombre d'annees ;-) )
- 3°/ 2.2 mois n'existe pas vraiment, un mois c'est un mois (soit 30
jours,
ou pour être plus précis l'arrondi de 365.25/12) et la difference en mois entre deux dates est (en principe) une valeur entière.
la pas d'accord. On peut avoir acheté sa voiture il y a deux mois et demi...
De toute facon, la question la plus difficile dans ce probleme, c'est : c'est quoi un mois ? (parce que si on compte le nombre de mois en prenant comme unite un mois de fevrier de 28 jours...Pourtant Fevrier est un mois)
Et la, comme tu dis : <<à vous de l'adapter à votre cas>>
Sincères salutations. -- Jean-Claude FLAJOULOT
(...)
-- Fabrice Burghgraeve Computer & Services suivez ce lien pour me repondre en prive : http://cerbermail.com/?I3GMPRuXDD
SP&B
> la pas d'accord. On peut avoir acheté sa voiture il y a deux mois et demi...
Bonjour,
Oui bien sur, mais il serai plus logique de dire 2 mois et 15 jours. Deux mois et 15 jours c'est facile (deux mois et demi aussi), mais pour deux mois et 19 jours ou deux mois et 23 jours, etc... on dit comment ? Travaillant beaucoup sur des gestions de temps, j'utilise plus féquement des indications de durée exprimées en années, mois et jours ( 2 ans 11 mois et 27 jours par exemple) que la même duré exprimée de la manière suivante 35,88706365503080082135523613963039 mois. Je pense que la 1ère version est plus parlante que la 2ième et ne nécessite pas pour la personne qui lit de faire des calculs pour savoir combien ça fait exactement, puisque le calcul est déjà fait. Ne pas oublier non plus que le mois légal en france est de 30 jours, qu'il fasse réellement 28, 29, 30 ou 31 jours, la donnée de mois légal est à prendre en compte dans certains types d'applications.
enlever _no.spam pour me contacter en PV. http://perso.wanadoo.fr/securite.pointage.et.biometrie/
> la pas d'accord.
On peut avoir acheté sa voiture il y a deux mois et demi...
Bonjour,
Oui bien sur, mais il serai plus logique de dire 2 mois et 15 jours. Deux
mois et 15 jours c'est facile (deux mois et demi aussi), mais pour deux mois
et 19 jours ou deux mois et 23 jours, etc... on dit comment ?
Travaillant beaucoup sur des gestions de temps, j'utilise plus féquement des
indications de durée exprimées en années, mois et jours ( 2 ans 11 mois et
27 jours par exemple) que la même duré exprimée de la manière suivante
35,88706365503080082135523613963039 mois.
Je pense que la 1ère version est plus parlante que la 2ième et ne nécessite
pas pour la personne qui lit de faire des calculs pour savoir combien ça
fait exactement, puisque le calcul est déjà fait.
Ne pas oublier non plus que le mois légal en france est de 30 jours, qu'il
fasse réellement 28, 29, 30 ou 31 jours, la donnée de mois légal est à
prendre en compte dans certains types d'applications.
Sincères salutations.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie
SPetB_no.spam@wanadoo.fr
enlever _no.spam pour me contacter en PV.
http://perso.wanadoo.fr/securite.pointage.et.biometrie/
> la pas d'accord. On peut avoir acheté sa voiture il y a deux mois et demi...
Bonjour,
Oui bien sur, mais il serai plus logique de dire 2 mois et 15 jours. Deux mois et 15 jours c'est facile (deux mois et demi aussi), mais pour deux mois et 19 jours ou deux mois et 23 jours, etc... on dit comment ? Travaillant beaucoup sur des gestions de temps, j'utilise plus féquement des indications de durée exprimées en années, mois et jours ( 2 ans 11 mois et 27 jours par exemple) que la même duré exprimée de la manière suivante 35,88706365503080082135523613963039 mois. Je pense que la 1ère version est plus parlante que la 2ième et ne nécessite pas pour la personne qui lit de faire des calculs pour savoir combien ça fait exactement, puisque le calcul est déjà fait. Ne pas oublier non plus que le mois légal en france est de 30 jours, qu'il fasse réellement 28, 29, 30 ou 31 jours, la donnée de mois légal est à prendre en compte dans certains types d'applications.