| question sur date$ | |
|
|
Auteur | Message |
---|
RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: question sur date$ Dim 1 Mai 2016 - 11:36 | |
| bonjour a tous. je me replonge un peu dans le langage .j'ai chargé le programme de ygeromini gestion compte et j'ai un probleme avec la fonction date$ ayant une erreur en ligne 1546 ,j'ai testé ceci:
dim m% print "date actuelle : "+date$ m%=val(mid$(date$,4,2)) print m% la date qui s'affiche est 5/1/2016
j'obtiens :29 not correct arithmetic expression:error in fonction line 3 y a t-il une explication?
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 11:48 | |
| Oui. Si la date s'affiche chez toi comme "5/1/2016", c'est que tu es en représentation américaine (mois, jour, année). Chez moi, date$ s'affiche comme "01/05/2016". Or, la ligne - Code:
-
m%=val(mid$(date$,4,2)) prend 2 caractères à partir du 4ème, pour en déduire le mois. Dans ta représentation, ce serait "/2", ce qui est évidemment non numérique. Chez moi, la formule utilise correctement "05". Conseil: Change tes préférences système pour avoir une représentation de la date e, format jj/mm/aaaa. Tu éviteras une multitude de problèmes, dès que la gestion de la date est concernée en Panoramic. Ne serait-ce que le tri par date... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Dim 1 Mai 2016 - 11:58 | |
| Effectivement, je n' avais pas pensé à cela. Il faudrait que je trouve une formule pour ce cas... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 12:09 | |
| Tu auras beau faire, Ygeronimi, mais tu ne pourras jamais différencier me 5/1/2016 du 1/5/2016. Où est le mois, où est je jour ?
Non. Il faut avoir une représentation normalisée des dates. Nous sommes en France, tout est en Français, il faut donc que la date soit en format français. C'est aussi simple que ça. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 12:29 | |
| Pour changer le format local de la date, il faut aller dans les paramètres du système. Je suis sous W10, et je fais de la manière suivante: 1. par l'icône de la barre des tâches tout à fait à gauche, j'ouvre le menu de démarrage et je choisis "Paramètres". J'obtiens: 2. Je choisis "Heure et langue", et j'obtiens, en faisant défiler un peu la partie droite: 3. dans la partie "Formats", je clique sur "Modifier...", et j'obtiens: 4. là, je choisis les paramètres indiqués dans l'image. Ce qui importe ici, c'est le "format court". 5. je valide les informations Et voilà... | |
|
| |
RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 16:18 | |
| @ klaus merci pour ta réponse.j'ai verifié mon format date dans mon panneau de config .il est bien sous cette forme: jj/mm/aaaa. en bas a droite de mon écran j'ai bien 01/05/2016. par contre j'ai toujours la même erreur quand je lance gestion compte. j'ai fait une copie d'ecran mais je ne sais comment la mettre sur le site. .je reprendrai le suivi du post que dans 2 heures. rugby oblige. a+
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 17:01 | |
| Important : Pour éviter 29 not correct arithmetic expression:error in fonction line …Il faut d’abord tester si la variable contient une valeur numérique - Code:
-
dim v1$, v2$ v1$ = "X123" v2$ = "123" if numeric(v1$) = 0 print "V1$ ne contient pas une valeur numérique" else print "V1$ contient la valeur : " + str$(val(v1$)) end_if
if numeric(v2$) = 0 print "V2$ ne contient pas une valeur numérique" else print "V2$ contient la valeur : " + str$(val(v2$)) end_if
Pour l'exemple que tu as donné - Code:
-
dim jj$,mm$,aaaa$ print "Nous sommes le : " + date$ : ' <--- 01/05/2016 jj$ = left$(date$,2) mm$ = mid$(date$,4,2) aaaa$ = right$(date$,4) print "jj = " + jj$ : ' <--- 01 print "mm = " + mm$ : ' <--- 05 print "aaaa = " + aaaa$ : ' <--- 2016
| |
|
| |
RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 19:05 | |
| a papydall. j'ai testé ce petit bout de code est le résultat n'est pas le bon.je n'obtient pas 01/05/2016 mais nous sommes le 5/1/2016 jj$=5/ mm$ =/2 aaaa$ =2016 et pourtant ma date affichée en bas a droite est bien 01/05/2016.
autre question : comment fait-on pour envoyer une copie d'écran ?. j'ai égaré mon pense-bête concernant cette manip a+
| |
|
| |
RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: question sur date$ Dim 1 Mai 2016 - 19:28 | |
| problème résolu. je suis passé en option Français(Luxemgourg) : résultat ok. je suis repassé sur Français (France ) et enfin cette manip a été prise en compte je vais pouvoir maintenant tester le prg de ygeronimi merci pour votre aide
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 1 Mai 2016 - 19:46 | |
| @ Rmont, Essais ceci : - Code:
-
CountryFormatDate() message country$+" : "+day$ end
sub CountryFormatDate() if variable("day$")=0 then dim day$ dim_local sep$,sep%,d$,country$ sep%=instr(date$,"/") : d$=right$(date$,len(date$)-sep%) sep$=sep$+str$(sep%) sep%=instr(date$,"/") sep$=sep$+str$(sep%) : sep%=val(sep$) if sep%=33 country$="fr" day$=date$ else country$="us" day$="0"+mid$(date$,3,1)+"/0"+mid$(date$,1,1)+"/"+right$(date$,4) end_if end_sub | |
|
| |
Contenu sponsorisé
| Sujet: Re: question sur date$ | |
| |
|
| |
| question sur date$ | |
|