Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Petites subs avec les dates | |
|
+3papydall Jean Claude Yannick 7 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 8 Sep 2013 - 11:11 | |
| Bon, pour résumer, Papydall a constaté, cosmos70 a gueulé, froggy one a corrigé, Jicehel s' en tape..., moi je suis un grand philosophe devant l' éternel et Papydall s'est auto flagellé. ET maintenant ! vous en pensez quoi de cette Sub ?!... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Petites subs avec les dates Dim 8 Sep 2013 - 11:16 | |
| Elle est très bien Ygeronimi et le côté multilingue est sympa, par contre maintenant Ygeronimi, tu dois t'y tenir et faire tes sub en 10 langues minimum en paramétrable | |
| | | Invité Invité
| Sujet: Re: Petites subs avec les dates Dim 8 Sep 2013 - 11:17 | |
| Froggy One Tu n'étais pas concerné personnellement. C'est devenu une pratique collective. Personnellement je ne suis pas offusqué, et souvent une règle oubliée, est remis à jour par vos interventions. Je vois seulement que ceux qui n'ont pas une bonne maîtrise de l'orthographe, n'interviennent plus. C'est un forum informatique, donc on doit apporter le pot de miel qui attrape un individu par gourmandise sur ce sujet, mais à la place, on y met une tapette. Tu interviens au moment que je publie Ygeronimi. Je n'ai pas gueulé, je fais juste une constatation. Edit: j n'interviens plus sur ce sujet pour ne pas polluer davantage ce post. |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 8 Sep 2013 - 11:30 | |
| @ Cosmos70,
Ma dernière intervention était une boutade mais je comprends ton point de vue. Je pense que la correction de l' orthographe, c' est bien mais cela peut avoir un effet pervers. On devrait peut être s' en tenir à une correction lorsque l' orthographe d' un mot peut prêter à confusion avec un autre dans le sens.
@ Jicehel,
Je vais reprendre dans cette "sub", pour la compléter, celle de transformation en chaine de caractère (08/09/2013 => Dimanche 8 Août 2013) dans ces langues. | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Lun 9 Sep 2013 - 10:13 | |
| Quelle sub ? Non, elle est super ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 9 Sep 2013 - 13:07 | |
| Ben...pas si super que cela... Je viens de corriger un bug monumental ! - Code:
-
Proc_Date("09/09/2013","fr") :' nom du jour en français ' Proc_Date(date$,"en") :' nom du jour en anglais ' Proc_Date(date$,"es") :' nom du jour en espagnol ' Proc_Date(date$,"de") :' nom du jour en allemand ' Proc_Date(date$,"it") :' nom du jour en italien ' Proc_Date(date$,"pl") :' nom du jour en polonais ' Proc_Date(date$,"ar") :' nom du jour en arabe ' Proc_Date(date$,"ja") :' nom du jour en japonais ' proc_Date(date$,"la") :' nom du jour en latin ' proc_Date(date$,"nl") :' nom du jour en Néerlandais ' proc_Date(date$,"ru") :' nom du jour en russe ' proc_Date(date$,"tu") :' nom du jour en turc
Print Nom_jour$+" "+left$(Day$,2)+" "+Nom_mois$+" "+right$(Day$,4) Print "C est le "+str$(N_jour_Annee%)+" ème jour de l' année "+right$(Day$,4) Print "Le numéro du jour depuis le 01/01/1900 est le "+str$(day%)+" (selon excel)" Print "C'est le jour "+str$(Num_js%)+" de la semaine Numéro "+str$(Num_sem%) Print "La semaine "+str$(Num_sem%)+" dédute le "+deb_sem$+" et finit le "+fin_sem$
end
Sub Proc_Date(jour$,lang$) ' CREATION DES VARIABLES GLOBALES NECESSAIRES if variable("Day$")=0 then dim Day$ Day$=Jour$ ' recevra le jour sous forme de chaine de caractere passé en paramètre 1 if variable("Nom_mois$")=0 then dim Nom_mois$ if variable("N_jour_Annee%")=0 then dim N_jour_Annee% ' recevra le nombre de jour entre le 01/01 et le jour de l' année de la date passée en paramètre if variable("day%")=0 then dim day% ' recevra le nombre de jour entre le 01/01/1900 et la date passée en paramètre if variable("Num_sem%")=0 then dim Num_sem% ' recevra le numéro de la semaine dans l' année de la date passée en paramètre if variable("Num_js%") = 0 then dim Num_js% ' recevra le numéro du jour dans la semaine if variable("Nom_jour$") = 0 then dim Nom_jour$ ' recevra le nom du jour de la semaine dans la langue passée en paramètre if variable("deb_sem$")=0 then dim deb_sem$ ' recevra la date du début de la semaine du jour passé en paramètre if variable("fin_sem$")=0 then dim fin_sem$ ' recevra la date de la fin de la semaine du jour passé en paramètre ' CREATION DES VARIABLES LOCALES dim_local j%,m%,a%,x%,sep%,liste$,jm%,njm%,a$,ja%,bis%,b% ,js_d,langue%,Lg$ dim_local deb_sem%,fin_sem%,mois%,j$,m$,rs_js%,Nm$ ' INITIALISATIONS DES VARIABLES LISTE liste$="31_28_31_30_31_30_31_31_30_31_30_31_" ' calcul du nombre de jour depuis le 01/01 de l' année de la date j%=val(left$(jour$,2)) N_jour_Annee%=j% m%=val(mid$(jour$,4,2)) if m%-1<>0 for x%=1 to m%-1 sep%=instr(liste$,"_") a$=left$(liste$,2):jm%=val(a$):njm%=njm%+jm% if len(liste$)>0: Liste$=right$(liste$,len(liste$)-sep%):end_if next x% end_if N_jour_Annee%=N_jour_Annee%+njm% a%=right$(jour$,4) if mod(a%,4)=0 :b%=b%+1:end_if if mod(a%,100)>0:b%=b%+1:end_if if b%<2 if mod(a%,400)=0:b%=b%+1:end_if end_if if b%<2 :bis%=0:else:bis%=1:end_if if bis%=1 and m%=2 N_jour_Annee%=N_jour_Annee%+1 end_if ' calcul du nombre de jour entre le 01/01/1900 et le 31/12 de l' année précédente de la date if a%<>1900 for x%=1900 to a%-1 b%=0 if mod(x%,4)=0 :b%=b%+1:end_if if mod(x%,100)>0:b%=b%+1:end_if if b%<2 if mod(x%,400)=0:b%=b%+1:end_if end_if if b%<2 :bis%=0:else:bis%=1:end_if if bis%=1 ja%=ja%+366 else ja%=ja%+365 end_if next x% end_if day%=N_jour_Annee%+ja% ' calcul du numéro de la semaine d' après le numéro du jour Num_sem%=int(mod(int((day% -2)/7)+0.6,52+5/28))+2 ' calcul du jour de la semaine ' Jour de la semaine d'une date donnée (0= Dimanche à 6= Samedi) -> rs_js% js_d = a% if m% < 3 then js_d = js_d-1 js_d=int(23*m%/9) + j% + 4 + a% + int(js_d/4) - int(js_d/100) + int(js_d/400) if m%>=3 then js_d = js_d-2 rs_js% = js_d-7*int(js_d/7) Num_js%=rs_js% ' nom du jour de la semaine if lang$="fr": langue%=1 :end_if if lang$="en": langue%=2 :end_if if lang$="es": langue%=3 :end_if if lang$="de": langue%=4 :end_if if lang$="it": langue%=5 :end_if if lang$="pl": langue%=6 :end_if if lang$="ar": langue%=7 :end_if if lang$="ja": langue%=8 :end_if if lang$="la": langue%=9 :end_if if lang$="nl": langue%=10:end_if if lang$="ru": langue%=11:end_if if lang$="tu": langue%=12:end_if select langue% case 1 : Lg$ = "Dimanche,Lundi,mardi,Mercredi,Jeudi,Vendredi,Samedi," Nm$ = "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre," case 2 : Lg$ = "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday," Nm$ = "January,February,March,April,May,June,July,August,September,October,November,December," case 3 : Lg$ = "Domingo,Lunes,Martes,Miércoles,jueves,Viernes,Sabado," Nm$ = "Enero,Febrero,Marzo,Abril,Mayo,Junio??,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre," case 4 : Lg$ = "Sonntag,Montag,Dienstag,Mittwoch,Freitag,Samstag," Nm$ = "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember," case 5 : Lg$ = "Domenica,Lunedi,Martedi,Mercoledi,Giovedi,Venerdi,Sabato," Nm$ = "Gennaio,febbraio,marzo,aprile,maggio,giugno,luglio,agosto,settembre,ottobre,novembre,dicembre," case 6 : Lg$ = "niedziela,poniedzialek,wtorek,sroda,czwartek,piatek,sobota," Nm$ = "Styczen,luty,marzec,kwiecien,maj,czerwiec,lipiec,sierpien,wrzesien,pazdziernik,listopad,grudzien," case 7 : Lg$ = "AL Ahad,Al Ithnaîn,Al Thoulatha,Al Arbiâa,Al Khamisse,Al Joumouâa,Al Sabt," Nm$ = "Yanaier,Febraeir,Adar/Mares,Younyou,Youlyou,Aghosstoss,Sebtember,Octoubr,Noufember,Dicember," case 8 : Lg$ = "Nichiyoubi,Getzuyoubi,Kayoubi,Suiyoubi,Mokuyoubi,Kinyoubi,Doyoubi," Nm$ = "ichigatsu,nigatsu,sangatsu,shigatsu,gogatsu,rokugatsu,shichigatsu,hachigatsu,kugatsu,jügatsu,jüichigatsu,jünigatsu," case 9 : Lg$ = "Solis dies,Lunae dies,Marts dies,Mercuni dies,Jovis dies,Veneris dies,Saturni dies," Nm$ = "Ianuarius,Februarius,Martius,Aprilis,Maius,Iunius,Iulius seu Quintilis,Augustus,September,October,November,December" case 10: Lg$ = "Zondag,Maandag,Dinsdag,Woensdag,Donderdag,Vrijdag,Zaterdag," Nm$ = "Januari,februari,maart,april,mei,juni,juli,augustus,september,oktober,november,december," case 11: Lg$ = "Voskresenje,Ponedjelnik,Vtomik,Sredá,Tjetverg,Pjatnitse,Subbota," Nm$ = "Yanvar',fevral',mart,aprel',may,iyun',iyul',avgust,sentyabr',oktyabr',noyabr',dekabr'," case 12: Lg$ = "Ahad,Esnein,Salasa,Erbua,Khamis,Dschuma,Sebt," Nm$ = "Ocak,Subat,Mart,Nisan,Mayis,Haziran,Temmuz,Agustos,Eylül,Ekim,Kasim,Aralik," end_select
for x%= 0 to rs_js% sep%=instr(Lg$,",") Nom_jour$=left$(Lg$,sep%-1) if len(Lg$)>0 Lg$=right$(Lg$,len(Lg$)-sep%) end_if next x% for x%= 1 to m% sep%=instr(Nm$,",") Nom_Mois$=left$(Nm$,sep%-1) if len(Nm$)>0 Nm$=right$(Nm$,len(Nm$)-sep%) end_if next x% ' calcul debut et fin de semaine deb_sem%=(j% -rs_js% )+1 if deb_sem% <0 deb_sem%=jm%-deb_sem% if m%>1:mois%=m%-1:else:deb_sem%=1:mois%=1:end_if else mois%=m% end_if if len(str$(deb_sem%))<2 :j$="0"+str$(deb_sem%):else:J$=str$(deb_sem%):end_if if len(str$(mois%))<2 :m$="0"+str$(mois%):else:m$=str$(mois%):end_if deb_sem$=j$+"/"+m$+"/"+str$(a%)
fin_sem%=(deb_sem%+6) if fin_sem% >jm% fin_sem% =jm%-fin_sem% if m%<12 :mois%=m%+1 :else:fin_sem%=31:mois%=12 :end_if else mois%=m% end_if if len(str$(fin_sem%))<2 :j$="0"+str$(fin_sem%):else:J$=str$(fin_sem%):end_if if len(str$(mois%))<2 :m$="0"+str$(mois%):else:m$=str$(mois%):end_if fin_sem$=j$+"/"+m$+"/"+str$(a%) end_sub Maintenant, je vais pouvoir la compléter...
Dernière édition par ygeronimi le Lun 9 Sep 2013 - 13:51, édité 2 fois (Raison : Ajout des mois dans les langues prédéfinies) | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Petites subs avec les dates Lun 9 Sep 2013 - 13:32 | |
| @Ygeronimi Cette SUB est très bien mais je cherche ses applications possibles ? Connaitre le nombre de jours écoulés depuis 1900 ???
Une brève sur l'orthographe, Papydall ne m'a pas vexé, j'ai juste fait un peu d'humour sur son intervention, je pensais pas déclencher un torrent de réactions. Mais bon, je suis d'avis de lever le pied sur l'orthographe pour ne gêner personne.
A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 9 Sep 2013 - 14:08 | |
| @ Jean Claude, Sur l' orthographe,J' ai moi même essayé un boutade qui apparemment a coincé... pas grave... Sur la sub, petit exemple: on est le 09/09/2013 tu veux savoir combien de jours te sépare d' une autre date ( ex 07/10/1989). dim a%,b%,c% proc_date("09/09/2013","fr") :' 41525 a%=day% proc_date("07/10/1989","fr") :' 32787 b%=day% c%=a%-b% :' 41525-32787=8738 print "écart = "+str$(c%) entre autres applications possibles... J' ai complété avec les mois dans les langues prédéfinies, j' espère avoir la bonne traduction pour Papydall | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Petites subs avec les dates Lun 9 Sep 2013 - 17:27 | |
| Vu comme çà c'est plus intéressant. Je vais faire des tests pour vérifier mais je suppose que c'est bon sinon tu n'aurais pas validé. Jusqu’à présent j'utilisais un sous-programme de Klaus (dont on aimerai avoir des nouvelles) qui n'est pas une SUB et qui est moins pratique d'utilisation.
A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 9 Sep 2013 - 17:53 | |
| Je vais en sortir une autre pour rigoler... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 9 Sep 2013 - 19:15 | |
| Voilà Sub Diff_Date(D1$,D2$) Les dates doivent être au format "jj/mm/aaaa" - Code:
-
Dim Jour1$,Jour2$ Jour1$="31/12/2012" Jour2$="31/12/2013" Diff_Date(Jour1$,Jour2$)
Print "il y a "+str$(Diff_date%)+" jours entre le "+Jour1$+" et le "+Jour2$
end
Sub Diff_Date(D1$,D2$) if variable("Diff_Date%")=0 then Dim Diff_Date% ' recevra le résultat sous forme numérique dim_local j1%,m1%,a1%,j2%,m2%,a2%,nja1%,nja2%,liste1$,liste2$,jm1%,jm2%,njm1%,njm2% dim_local b1%,b2%,bis1%,bis2%,day1%,day2%,ja1%,ja2%,x%,sep%,a$ liste1$="31_28_31_30_31_30_31_31_30_31_30_31_" liste2$=liste1$
j1%=val(left$(D1$,2)) : j2%=val(left$(D2$,2)) nja1%=nja1%+j1% : nja2%=nja2%+j2% m1%=val(mid$(D1$,4,2)): m2%=val(mid$(D2$,4,2)) if m1%-1<>0 for x%=1 to m1%-1 sep%=instr(liste1$,"_") a$=left$(liste1$,2):jm1%=val(a$):njm1%=njm1%+jm1% if len(liste1$)>0: Liste1$=right$(liste1$,len(liste1$)-sep%):end_if next x% end_if if m2%-1<>0 for x%=1 to m2%-1 sep%=instr(liste2$,"_") a$=left$(liste2$,2):jm2%=val(a$):njm2%=njm2%+jm2% if len(liste2$)>0: Liste2$=right$(liste2$,len(liste2$)-sep%):end_if next x% end_if nja1%=nja1%+njm1% : nja2%=nja2%+njm2%
a1%=val(right$(D1$,4)): a2%=val(right$(D2$,4)) if mod(a1%,4)=0 :b1%=b1%+1:end_if if mod(a1%,100)>0:b1%=b1%+1:end_if if b1%<2 if mod(a1%,400)=0:b1%=b1%+1:end_if end_if if b1%<2 :bis1%=0:else:bis1%=1:end_if if bis1%=1 and m1%=2 nja1%=nja1%+1 end_if if mod(a2%,4)=0 :b2%=b2%+1:end_if if mod(a2%,100)>0:b2%=b2%+1:end_if if b2%<2 if mod(a2%,400)=0:b2%=b2%+1:end_if end_if if b2%<2 :bis2%=0:else:bis2%=1:end_if if bis2%=1 and m2%=2 nja2%=nja2%+1 end_if if a1%<>1900 for x%=1900 to a1%-1 b1%=0 if mod(x%,4)=0 :b1%=b1%+1:end_if if mod(x%,100)>0:b1%=b1%+1:end_if if b1%<2 if mod(x%,400)=0:b1%=b1%+1:end_if end_if if b1%<2 :bis1%=0:else:bis1%=1:end_if if bis1%=1 ja1%=ja1%+366 else ja1%=ja1%+365 end_if next x% end_if day1%=nja1%+ja1% if a2%<>1900 for x%=1900 to a2%-1 b2%=0 if mod(x%,4)=0 :b2%=b2%+1:end_if if mod(x%,100)>0:b2%=b2%+1:end_if if b2%<2 if mod(x%,400)=0:b2%=b2%+1:end_if end_if if b2%<2 :bis2%=0:else:bis2%=1:end_if if bis2%=1 ja2%=ja2%+366 else ja2%=ja2%+365 end_if next x% end_if day2%=nja2%+ja2% Diff_Date%=ABS(Day2%-Day1%) end_sub
Dernière édition par ygeronimi le Mar 10 Sep 2013 - 6:46, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Petites subs avec les dates Lun 9 Sep 2013 - 19:58 | |
| Bonsoir ygeronimi, et si tu n'imposais pas laquelle date doit être la plus récente, on les donnerait dans n'importe quel ordre, et à la fin de la sub il suffit de faire - Code:
-
Diff_Date%=ABS(Day2%-Day1%) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Mar 10 Sep 2013 - 6:45 | |
| Effectivement,JL35, ABS(V) n'est pas une fonction que j' utilise couramment et du coup je suis passé à côté. Je vais éditer et ajouter cela.
Merci pour ton observation. | |
| | | Contenu sponsorisé
| Sujet: Re: Petites subs avec les dates | |
| |
| | | | Petites subs avec les dates | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |