| |
|
|
p.specht
| In EU-Europa beginnt el Zählung el Wochentage uno (Arbeits-)Semana con Montag = 1. El erste Kalenderwoche es jene, en el überwiegende Zahl de Tagen ya en el laufenden Jahr mentira, si la Neujahrstag Así que una Donnerstag oder später es. Darum kommt en el nachfolgenden Programa el Berechnung des Wochentagsnummer des Neujahrstages besondere Bedeutung a.
Un Edición KW=0 bedeutet entonces, daß el gesuchte Tag todavía a 53. Semana des Vorjahres zählt. Der Algorithmus arbeitet de el 01.01.1583 y es vom Unix-Jahr_2038-Fehler no betroffen.
Zit. Wiki: " Jedes Jahr ha entweder 52 oder 53 Kalenderwochen. - Ein Normaljahr con 53 Wochen beginnt a una Donnerstag y endet a una Donnerstag. - Ein Schaltjahr con 53 Wochen beginnt entweder a una Mittwoch y endet a una Donnerstag oder lo beginnt a una Donnerstag y endet a una Freitag. - - Der 29., 30. y 31. Dezember puede ya a Kalenderwoche 1 des Folgejahres gehören. - - Der 1., 2. y 3. Januar puede todavía a el letzten Kalenderwoche des Vorjahres gehören."
DIN 1355-1 führte para 1. Januar 1976 una entsprechende Zählweise con Montag como ersten Wochentag en el Alemán Sprachraum una.
Título de la ventana upper$("Europäische Kalenderwochennummer uno cierto Datums")
Ventana de Estilo 24:declarar jahr&,monat&,tag&:font 2'BETA-VERSION OHNE JEDE GEWÄHR!
looop:
CLS:imprimir "\n Jahr = ";:input jahr&:imprimir " Monat = ";:input monat&
imprimir " Tag = ";:input tag&:imprimir
if WTNr(jahr&,monat&,tag&)<1:imprimir " Eingabefehler! (Jahr<1583 o.ähnl.)":goto "resum":endif
casenot SJ(jahr&):imprimir " Kein";:imprimir " Schaltjahr!"
imprimir " Dieser ";TN(jahr&,monat&,tag&);".Tag des Jahres";
imprimir " liegt en el ";KW(jahr&,monat&,tag&);".KW";
caso KW(jahr&,monat&,tag&)=0:imprimir " o. el 53.KW des Vorjahres,";
imprimir "\n y es el ";WTNr(jahr&,monat&,tag&);".Tag dieser Semana (Zählung beginnt con Mo)."
imprimir " Lo es son una ";WTStr$(WTNr(jahr&,monat&,tag&));" (";WTsStr$(WTNr(jahr&,monat&,tag&));")"
resum:
imprimir:waitinput:goto "Looop"
FIN
proc SJ :parámetros jahr&:caso jahr&<1583:volver -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:volver sj&
ENDPROC
proc TN :parámetros jahr&,monat&,tag&'TAGNUMMER IM JAHR
caso (jahr&<1583) or (monat&<1) or (monat&>12):volver -1
var tn&=val(substr$("0 31 59 90 120 151 181 212 243 273 304 334 365",monat&," "))+tag&
caso monat&<3:volver tn&:caso SJ(jahr&):inc tn&:volver tn&
ENDPROC
proc WTNr :parámetros jahr&,monat&,tag&
caso jahr&<1583:volver -1'WOCHENTAG-Nr
var WTNrNJ&=WTNrNJ(jahr&)
var TN&=TN(jahr&,monat&,tag&)
var WTNr& = ( ((TN&-1) mod 7)+(WTNrNJ&-1)) mod 7 + 1
volver WTNr&
ENDPROC
proc WTsStr$ :parámetros WTNr&'WOCHENTAG-shortString
volver substr$("Mo Di Mi Do Fr Sa So",WTNr&," ")
ENDPROC
proc WTStr$ :parámetros WTNr& :volver substr$(\
"Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag",WTNr&," ")
ENDPROC' = WOCHENTAG-NAME
proc WTNrNJ :parámetros jahr&'WOCHENTAG-Nr_des_Neujahrstages
caso jahr&<1583:volver -1:var AJ&=jahr&-1201
var WT&=1+AJ&+int(AJ&/4)-int(AJ&/100)+int(AJ&/400)
WT&=WT& mod 7: caso wt&=0:wt&=7:volver WT&' 1="Montag"
ENDPROC
Proc KW :parámetros jahr&,monat&,tag&
var WT&=WTNrNJ(jahr&)'KALENDERWOCHE
var WN&=TN(jahr&,monat&,tag&)+WT&-2
caso WT&<5:WN&=WN&+7
WN&=int(WN&/7):volver WN&
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 20.05.2021 ▲ |
|
|
|