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 |
|
|
| Nom du jour de la semaine | |
| | Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Nom du jour de la semaine Mar 18 Mai 2021 - 18:26 | |
| j'ai déjà traité ce sujet, mais il est vérouillé je vous remet ici le code actualisé et corrigé, car il y avait une erreur de syntaxe une SUB pour donner le nom du jour courant - Code:
-
' NomDuJour.bas JC 18/05/2021 d'après l'algorytme de Mike Keith
DIM Nomjours$ DIM jj$,mm$,aaaa$ ' ==============================================================================' prog jj$=str$(date_day) : mm$=str$(date_month) : aaaa$=str$(date_year)
Retourne_Jour_Semaine(jj$,mm$,aaaa$)
' résultat dans form 0 et dans son bandeau caption 0,Nomjours$+" "+date$ : PRINT Nomjours$+" "+date$ ' ============================================================================== end prog END ' =============================================================================='sous-prog SUB Retourne_Jour_Semaine(jour$,moi$,an$) ' d'après l'algorytme de Mike Keith dim_local aaaa%,mm%,jj%,az,ma,rm,jjs,rp jj%=val(jour$):mm%=val(moi$):aaaa%=val(an$) if mm%>=3 az=aaaa%:ma=2 else az=aaaa%-1:ma=0 end_if rp=((int(23*mm%))/9)+jj%+4+aaaa%+(int(az/4))-(int(az/100))+(int(az/400))-ma rm=mod(rp,7):jjs=int(rm) if jjs=0 then Nomjours$="Dimanche" if jjs=1 then Nomjours$="Lundi" if jjs=2 then Nomjours$="Mardi" if jjs=3 then Nomjours$="Mercredi" if jjs=4 then Nomjours$="Jeudi" if jjs=5 then Nomjours$="Vendredi" if jjs=6 then Nomjours$="Samedi" END_SUB
A+ | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Nom du jour de la semaine Mar 18 Mai 2021 - 18:54 | |
| Super ! Eh, c'est la forme qui revient ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 18 Mai 2021 - 21:56 | |
| Mis en fonction : - Code:
-
caption 0,NomJourSemaine$(date$)+" "+date$
END ' ==============================================================================
FNC NomJourSemaine$(Dte$) dim_local An%,Ms%,Jr%,az,ma,jjs,rp,NmJr$ NmJr$ ="DimancheLundi Mardi MercrediJeudi VendrediSamedi "
Jr% = val(mid$(Dte$,1,2)) Ms% = val(mid$(Dte$,4,2)) An% = val(mid$(Dte$,7,4)) if Ms%>=3:az=An%:ma=2:else:az=An%-1:ma=0:end_if rp=((int(23*Ms%))/9)+Jr%+4+An%+(int(az/4))-(int(az/100))+(int(az/400))-ma jjs=int(mod(rp,7)) result trim$(mid$(NmJr$,(jjs*8)+1,8)) End_fnc | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Nom du jour de la semaine Mar 18 Mai 2021 - 22:40 | |
| Bonsoir à tous ! Merci Jean-Claude pour ton partage. @Yannick Il y a un petit bug dans l'affichage de ta fonction : | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom du jour de la semaine Mar 18 Mai 2021 - 23:19 | |
| Comme Jean Claude semble être en bonne forme, moi aussi je le suis (verbe être ou suivre, c’est kif-kif). Voici ma contribution : - Code:
-
rem ============================================================================ rem Détermination du jour de la semaine rem ============================================================================ print : print : print " Méthode 1" print " Nous sommes le " + DayOfWeek_1$(date_day,date_month,date_year) + " " + date$ print " Papydall est né le " + DayOfWeek_1$(10,8,1950) + " 10/08/1950" print : print : print " Méthode 2" print " Nous sommes le " + DayOfWeek_2$(date_day,date_month,date_year) + " " + date$ print " Papydall est né le " + DayOfWeek_2$(10,8,1950) + " 10/08/1950"
end rem ============================================================================ ' calcul du jour de la semaine ' 1ère méthode FNC DayOfWeek_1$(jour,mois,annee) dim_local wd if mois < 3 wd = int(23*mois/9) +jour+4+annee+int((annee-1)/4)-int((annee-1)/100)+int((annee-1)/400) else wd = int(23*mois/9)+jour+2+annee+int(annee/4)-int(annee/100)+int(annee/400) end_if select mod(wd,7) case 0 : result "Dimanche" case 1 : result "Lundi" case 2 : result "Mardi" case 3 : result "Mercredi" case 4 : result "Jeudi" case 5 : result "Venderdi" case 6 : result "Samedi" end_select END_FNC rem ============================================================================ ' calcul du jour de la semaine ' seconde méthode FNC DayOfWeek_2$(jour,mois,annee) dim_local c,a,m,j c = int((14-mois)/12) a = annee - c m = mois + 12 * c - 2 j = (jour + a + int(a/4) - int(a/100) + int(a/400) + int((31*m)/12)) select mod(j,7) case 0 : result "Dimanche" case 1 : result "Lundi" case 2 : result "Mardi" case 3 : result "Mercredi" case 4 : result "Jeudi" case 5 : result "Venderdi" case 6 : result "Samedi" end_select END_FNC rem ============================================================================
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Mai 2021 - 0:31 | |
| Il y a un espace qui s'est perdu entre lundi et mardi dans la liste. Je ne sais pas où il s'est perdu car sur mon PC j'ai le bon nombre. Même pas, je viens de vérifier et il y en a bien 3. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom du jour de la semaine Mer 19 Mai 2021 - 0:53 | |
| Changer la ligne 9 comme ceci - Code:
-
NmJr$ ="Dimanche Lundi Mardi MercrediJeudi VendrediSamedi "
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Mai 2021 - 12:14 | |
| @Papydall, Il y a un espace en trop dans ta chaine entre dimanche et lundi un bloc de 8 caractère est récupéré par mid$ à partir de ( jjs*8 )+1 soit: 1, "Dimanche" , 8 lettres 9, "Lundi " , 5 lettres + 3 espaces 17, "Mardi " 5 lettres + 3 espaces 25, "Mercredi" , 8 lettres 33, "Jeudi " 5 lettres + 3 espaces 41, "Vendredi" , 8 lettres 49, "Samedi " 6 lettres + 2 espaces trim$ élimine les espaces la chaine pourrai s'écrire comme suit : - Code:
-
NmJr$ = "DimancheLundi" + string$(3,chr$(34)) + "Mardi" + string$(3,chr$(34)) NmJr$ = NmJr$ + "MercrediJeudi" + string$(3,chr$(34)) + "VendrediSamedi" + string$(2,chr$(34)) | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Nom du jour de la semaine Mer 19 Mai 2021 - 18:26 | |
| Merci à vous tous pour vos commentaires, @yannick, c'est effectivement une FUNCTION qu'il fallait et non pas une SUB. @ tous, excusez-moi pour ce problème d'espace, J' ai posté trop tôt ce code. J'essaierai de faire mieux la prochaine fois. A+ | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Nom du jour de la semaine Mer 19 Mai 2021 - 21:35 | |
| - Jean-Claude a écrit:
- excusez-moi pour ce problème d'espace
@Jean-Claude Tu n'es pas en cause, ton source fonctionne parfaitement bien ! Lorsque je signalai un problème d'affichage, le message s'adressait à notre ami Yannick, suite à son partage sous forme de FNC. Bonne soirée à tous ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Nom du jour de la semaine Mar 25 Mai 2021 - 14:48 | |
| Sinon il y avait ça aussi : https://panoramic.1fr1.net/t4040-gestion-de-la-date-avec-jour-de-la-semaine- Spoiler:
- Code:
-
DIM a% , x% , y% , j% , jour% , mois% , annee% , m$(12) , nbj(12) , j$(7)
DATA Dimanche , Lundi , Mardi , Mercredi , jeudi , Vendredi , Samedi DATA Janvier , 31 , Fevrier , 28 , Mars , 31 , Avril , 30 , Mai , 31 , Juin , 30 , Juillet , 31 DATA Aout , 31 , Septembre , 30 , Octobre , 31 , Novembre , 30 , Decembre , 31
LABEL affiche , valide , aujourdhui , jour
PANEL 1 : PARENT 1,0 : TOP 1,0 : LEFT 1,0 : WIDTH 1,255 : HEIGHT 1,232 : COLOR 1,100,100,255 ALPHA 2 : PARENT 2,1 : TOP 2,5 : LEFT 2,5 : WIDTH 2,230 : HIDE 2 : HEIGHT 2,20 : FONT_SIZE 2,13 : ON_CLICK 2,valide COMBO 3 : PARENT 3,1 : TOP 3,5 : LEFT 3,5 : WIDTH 3,35 : ON_CHANGE 3,affiche COMBO 4 : PARENT 4,1 : TOP 4,5 : LEFT 4,42 : WIDTH 4,75 : ON_CHANGE 4,affiche COMBO 5 : PARENT 5,1 : TOP 5,5 : LEFT 5,119 : WIDTH 5,50 : ON_CHANGE 5,affiche BUTTON 6 : PARENT 6,1 : TOP 6,4 : LEFT 6,169 : WIDTH 6,25 : HEIGHT 6,23 : CAPTION 6,"Ok" : ON_CLICK 6,valide BUTTON 7 : PARENT 7,1 : TOP 7,4 : LEFT 7,192 : WIDTH 7,60 : HEIGHT 7,23 : CAPTION 7,"Aujourd'hui" : ON_CLICK 7,aujourdhui
ALPHA 9 : PARENT 9,1 : TOP 9,30 : LEFT 9,5 : FONT_BOLD 9 : CAPTION 9," Lun Mar Mer Jeu Ven Sam Dim " a%=10 : FOR y%=1 TO 6 : FOR x%=1 TO 7 PANEL a% : PARENT a%,1 : TOP a%,y%*30+18 : LEFT a%,x%*35-30 : WIDTH a%,35 : HEIGHT a%,30 : FONT_BOLD a% : COLOR a%,255,255,255 : ON_CLICK a%,jour : a%=a%+1 NEXT x% : NEXT y%
FOR a%=0 TO 6 : READ j$(a%) : NEXT a% FOR a%=1 TO 12 : READ m$(a%) : ITEM_ADD 4,m$(a%) : READ nbj(a%) : NEXT a% FOR a%=1900 TO 2050 : ITEM_ADD 5,STR$(a%) : NEXT a% GOSUB aujourdhui : GOSUB valide
END
jour: IF CAPTION$(NUMBER_CLICK)<>"" THEN jour%=VAL(CAPTION$(NUMBER_CLICK)) : TEXT 3,STR$(jour%) : GOSUB affiche RETURN
aujourdhui: jour%=LEFT$(DATE$,2) : mois%=MID$(DATE$,4,2) : annee%=RIGHT$(DATE$,4) TEXT 3,STR$(jour%) : TEXT 4,m$(mois%) : TEXT 5,STR$(annee%) affiche: jour%=VAL(TEXT$(3)) : FOR x%=1 TO 12 : IF TEXT$(4)=m$(x%) : mois%=x% : END_IF : NEXT x% : annee%=VAL(TEXT$(5)) IF MOD(annee%,400)=0 OR (MOD(annee%,4)=0 AND MOD(annee%,100)<>0) : nbj(2)=29 : ELSE : nbj(2)=28 : END_IF IF jour%>nbj(mois%) : jour%=nbj(mois%) : END_IF IF NUMBER_CHANGE<>3 THEN CLEAR 3 : FOR x%=1 TO nbj(mois%) : ITEM_ADD 3,STR$(x%) : NEXT x% : TEXT 3,STR$(jour%) j%=MOD((jour% + (annee%-INT((14-mois%)/12)) + INT((annee%-INT((14-mois%)/12))/4) - INT((annee%-INT((14-mois%)/12))/100) + INT((annee%-INT((14-mois%)/12))/400) + INT((31*(mois% + (12*INT((14-mois%)/12)) - 2))/12)),7) CAPTION 2,j$(j%)+" "+STR$(jour%)+" "+m$(mois%)+" "+STR$(annee%) LEFT 2,INT((230-TEXT_WIDTH(CAPTION$(2),2))/2) ' calendrier j%=MOD((1 + (annee%-INT((14-mois%)/12)) + INT((annee%-INT((14-mois%)/12))/4) - INT((annee%-INT((14-mois%)/12))/100) + INT((annee%-INT((14-mois%)/12))/400) + INT((31*(mois% + (12*INT((14-mois%)/12)) - 2))/12)),7) IF j%=0 THEN j%=7 FOR a%=10 TO 51 IF a%>=(j%+9) AND a%=<(j%+8+nbj(mois%)) : COLOR a%,255,255,255 : CAPTION a%,a%-j%-8 ELSE : COLOR a%,220,220,220 : CAPTION a%,"" : END_IF NEXT a% COLOR j%+8+jour%,255,255,0 RETURN
valide: IF SHOW(2)=1 FONT_BOLD_OFF 2 : HIDE 2 : HEIGHT 1,232 : FOR a%=3 TO 7 : SHOW a% : NEXT a% ELSE FONT_BOLD 2 : SHOW 2 : HEIGHT 1,32 : FOR a%=3 TO 7 : HIDE a% : NEXT a% END_IF RETURN
| |
| | | Contenu sponsorisé
| Sujet: Re: Nom du jour de la semaine | |
| |
| | | | Nom du jour de la semaine | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |