CALCUL DERNIERE SEMAINE DU MOIS ET MOIS CORRESPONDANT A UNE SEMAINE

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 4 nov. 2007 à 02:34
Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016 - 17 avril 2008 à 17:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44598-calcul-derniere-semaine-du-mois-et-mois-correspondant-a-une-semaine

Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016
17 avril 2008 à 17:56
Non, non rassure-toi! Je suis toujours debout. Et je ne suis absolument pas vexé, mais je voulais appuyer surtout sur le fait qu'il y a comme toi (et quelques autres) des gens qui sont largement supérieurs à d'autres, dont moi!
En toute amitié!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 avril 2008 à 17:01
c'est effectivement du vécu, les parametres regionnaux, j'ai bossé dans une boite qui vendait un logiciel a l'internationnal, je suis donc assez sensible a ce genre de choses. (valable pour les numériques, les dates, les formules Excel, ....)

j'ai cependant l'impression que tu te sens rabaissé suite a mon intervention...
je le déplore. au réveil, j'ai surveillé du coin de l'oeil les messages déposés sur les sources, ton code m'a inspiré et j'ai a mon tour posté. le but est de te faire avancer, pas te rabaisser (idem pour tous ceux a qui je fais partager mon experience)

a ta disposition, pour l'international (ou tout autre chose pour quoi je pourrais t'etre utile)
Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016
17 avril 2008 à 16:55
Voilà la preuve qu'un modeste contributeur ne sera jamais un Administrateur, et que je perds mon temps à programmer alors que des Grands Chefs le font si bien.
Mon propos était surtout de faire remarquer que "le dernier jour d'un mois est toujours le précédent du 1er du mois d'après."
Et que j'ai juste voulu l'étayer par un exemple.
Merci de cette précision! Et plus optimisé que ça c'est dur!
Dès que je ferai des programmes pour l'international, je me permettrai de te demander des précisions.
Renfield, encore merci.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 avril 2008 à 07:14
ouh que c'est laid :

"01/03/" & TonAnnée

je crois que je vais me sentir mal...
bon, plaisanterie mise a part, faut avouer que c'est pas top. ca fonctionne (Mars) sur TON poste, avec TES parametres regionnaux...
mais si le poste est configuré en british, par exemple, on aura MM/DD/YY et la, tta date serait compris comme un 3 janvier.

d'autre part, tu fais un CDate de cette chaine de caractère... donc, ca va utiliser, une nouvelle fois tes parametres régionnaux.

01/03/YYYY (3 Janvier), formaté donnera 03/01/YYYY auquel tu appliques le CDate
on retombes là sur le 1 Mars. Un peu risqué comme gymnastique, non ?

les dates en dur dans le code se notent #MM/DD/YYYY#
exemple :

DateNaissance = #12/31/1983#

les dates composées DOIVENT passer par DateSerial.

dans ton cas, tu aurais donc pu faire

DateSerial(TonAnnée, 3, 1)

et même mieux :

day(dateserial(2007,3,0))

donnera directement 28
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
17 avril 2008 à 01:50
Salut Chrysostome, et merci pour le post :)

Très intéressante ta formule, je ne connaissais pas les fonctions Day, Cdate et Clng, mais c'est en effet très pratique pour manipuler les dates et faire des calculs avec :)

J'avais oublié que j'avais programmé ça (c'était pour une autre personne à la base), je viens de le revoir donc, et bon... c'est vrai que le truc n'est pas optimisé du tout... DatePart fait le tout en une ligne... >_> (Mais la personne en question voulait le faire sans les fonctions internes de windows, je ne me rappelle plus la raison qu'il m'avait donné d'ailleurs.)

Faudra que je publie mes codes un de ces 4 (je n'en ai publié aucun :/), même si ils ont tous un code assez moche (PCPT peut en témoigner pour avoir vu un de mes programmes :p)

En tout cas, merci pour les fonctions et le post, ça me sera très utile justement pour mon prochain projet :)
Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016
16 avril 2008 à 19:44
Salut,
c'est suite à tes commentaires sur le pauvre sujet du jeu de dames, que j'ai trouvé (en toute modestie) tes interventions intéressantes, et j'ai regardé ce programme.
Beh, c'est que d'une manière générale, j'ai pris l'habitude de passer les dates en Long, c'est beaucoup plus faciles à manier.
Et juste une petite réflexion le dernier jour d'un mois est toujours le précédent du 1er du mois d'après.
Ainsi, le dernier jour de Février de l'année sera :
Day(CDate(CLng(CDate(Format("01/03/" & TonAnnée, "dd/mm/yy"))) - 1))
2007 => 28
2008 => 29
Voili,voilou, voilà.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 nov. 2007 à 13:00
salut,
ton code aura peut-être plus sa place sur www.codyx.org
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
4 nov. 2007 à 02:37
Oui, tu viens de me les souffler dans le forum, je vais faire ça, ça sera plus simple :)
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 nov. 2007 à 02:34
Trop complexe. Utilise les fonctions toutes faites comme DatePart.
Rejoignez-nous