| |
|
|
p.specht
| dans EU-Europa beginnt qui Zählung qui Wochentage einer (Arbeits-)semaine avec lundi = 1. la première Kalenderwoche ist celui-là, chez qui qui überwiegende numéro de Tagen bereits im laufenden l'an liegen, si qui Neujahrstag alors un jeudi ou bien später ist. tout autor venez im nachfolgenden Programme qui Berechnung des Wochentagsnummer des Neujahrstages besondere signification trop.
une Ausgabe KW=0 bedeutet ensuite, qui qui gesuchte journée encore zur 53. semaine des Vorjahres zählt. qui Algorithmus arbeitet ab dem 01.01.1583 et ist vom Unix-Jahr_2038-faute pas betroffen.
Zit. Wiki: " chaque l'an hat entweder 52 ou bien 53 Kalenderwochen. - un Normaljahr avec 53 Wochen beginnt à einem jeudi et endet à einem jeudi. - un Schaltjahr avec 53 Wochen beginnt entweder à einem mercredi et endet à einem jeudi ou bien es beginnt à einem jeudi et endet à einem vendredi. - - qui 29., 30. et 31. décembre peut déjà zur Kalenderwoche 1 des Folgejahres gehören. - - qui 1., 2. et 3. janvier peut encore trop qui letzten Kalenderwoche des Vorjahres gehören."
DIN 1355-1 führte zum 1. janvier 1976 une entsprechende Zählweise avec lundi comme ersten Wochentag im deutschen Sprachraum un.
Titre de la fenêtre upper$("Europäische Kalenderwochennummer eines certain Datums")
Fenêtre Style 24:declare jahr&,monat&,tag&:font 2'BETA-VERSION OHNE JEDE GEWÄHR!
looop:
CLS:imprimer "\n l'an = ";:input jahr&:imprimer " mois = ";:input monat&
imprimer " journée = ";:input tag&:imprimer
si WTNr(jahr&,monat&,tag&)<1:imprimer " Eingabefehler! (Jahr<1583 o.ähnl.)":goto "resum":endif
casenot SJ(jahr&):imprimer " Kein";:imprimer " Schaltjahr!"
imprimer " cette ";TN(jahr&,monat&,tag&);".journée des Jahres";
imprimer " liegt dans qui ";KW(jahr&,monat&,tag&);".KW";
cas KW(jahr&,monat&,tag&)=0:imprimer " bzw. qui 53.KW des Vorjahres,";
imprimer "\n et ist qui ";WTNr(jahr&,monat&,tag&);".journée cette semaine (Zählung beginnt avec Mo)."
imprimer " Es handelt sich um une ";WTStr$(WTNr(jahr&,monat&,tag&));" (";WTsStr$(WTNr(jahr&,monat&,tag&));")"
resum:
imprimer:waitinput:goto "Looop"
FIN
proc SJ :parameters jahr&:cas jahr&<1583:return -1'SCHALTJAHR
var sj&=0:ifnot jahr& mod 4:sj&=1:ifnot jahr& mod 100:sj&=0
casenot jahr& mod 400:sj&=1:endif:endif:return sj&
endproc
proc TN :parameters jahr&,monat&,tag&'TAGNUMMER IM JAHR
cas (jahr&<1583) or (monat&<1) or (monat&>12):return -1
var tn&=val(substr$("0 31 59 90 120 151 181 212 243 273 304 334 365",monat&," "))+tag&
cas monat&<3:return tn&:cas SJ(jahr&):inc tn&:return tn&
endproc
proc WTNr :parameters jahr&,monat&,tag&
cas jahr&<1583:return -1'WOCHENTAG-Nr
var WTNrNJ&=WTNrNJ(jahr&)
var TN&=TN(jahr&,monat&,tag&)
var WTNr& = ( ((TN&-1) mod 7)+(WTNrNJ&-1)) mod 7 + 1
return WTNr&
endproc
proc WTsStr$ :parameters WTNr&'WOCHENTAG-shortString
return substr$("Mo Di Mi Do Fr Sa So",WTNr&," ")
endproc
proc WTStr$ :parameters WTNr& :return substr$(\
"Montag mardi mercredi jeudi vendredi samedi Sonntag",WTNr&," ")
endproc' = WOCHENTAG-NAME
proc WTNrNJ :parameters jahr&'WOCHENTAG-Nr_des_Neujahrstages
cas jahr&<1583:return -1:var AJ&=jahr&-1201
var WT&=1+AJ&+int(AJ&/4)-int(AJ&/100)+int(AJ&/400)
WT&=WT& mod 7: cas wt&=0:wt&=7:return WT&' 1="Montag"
endproc
Proc KW :parameters jahr&,monat&,tag&
var WT&=WTNrNJ(jahr&)'KALENDERWOCHE
var WN&=TN(jahr&,monat&,tag&)+WT&-2
cas WT&<5:WN&=WN&+7
WN&=int(WN&/7):return WN&
endproc
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 20.05.2021 ▲ |
|
|
|