Foro | | | |  ByteAttack | OK! Eigentlich ligeramente a berechnen, aber como dijo, bin faul  Denn letzten Tag uno Monats berechnen, wäre fresco. Oder auch así komische Feiertage como Buß- y Bettag berechnen. z.Zt. mache Yo el así: (como Ejemplo)
podría sí uno tal vez en @dt("getBettag",Jahr%) oder algo como hacer... porque el Feiertage: Ostersonntag Karfreitag Ostermontag Christi Himmelfahrt Pfingsten (Mo) y Fronleichnam necesario berechnet voluntad. Was eigentlich weniger schlimm es, aber como dijo, bin a faul  |
| | | | |
| |  Peter Max Müller | Nabend. Ohne große Kommentare: Tal vez kanns uno gebrauchen.
' Feiertage.prf - Profano² Versionen 6.6, 7.6 & 8.0
'
' Autor: XPROFAN Gemeinschaft
$I ProfAlt.inc
Def IsLeapYear(1) If(Or(And(Equ(Mod(%(1),4),0),Neq(Mod(%(1),100),0)),Equ(Mod(%(1),400),0)),1,0)
Def GSC(1) !"User32","GetSysColor"
Declarar schaltjahr%,osterzahl%,rosenmontag$,aschermittwoch$,karfreitag$,\
ostersonntag$,ostermontag$,himmelfahrt$,muttertag$,pfingstsonnntag$
Declarar pfingstmontag$,fronleichnam$,volkstrauer$,bussbettag$,totensonntag$,\
1advent$,Tabs#,Ende%,Liste%,Butt%,jahr%,TabTexv$[17],x%,akt_jahr%
Let akt_jahr% = @Val(@Left$(Date$(3),4))
Proc WochenTag
Parámetros t%,m%,j%
Declarar k%,l%,o%,p!,z%,z1%,z2%,z3%,z4%,z5%
Let k%=Int(Add(0.6,Div(1,m%)))
Let l%=Sub(j%,k%)
Let o%=Add(m%,Mul(12,k%))
Let p!=Div(l%,100)
Let z1%=Int(Div(p!,4))
Let z2%=Int(p!)
Let z3%=Int(Div(Mul(5,l%),4))
Let z4%=Int(Div(Mul(13,Add(o%,1)),5))
Let z%=Add(z4%,z3%)
Sub z%,z2%
Add z%,z1%
Add z%,t%
Dec z%
Let z5%=Mul(7,Int(Div(z%,7)))
Sub z%,z5%
Volver z%
ENDPROC
Proc Ostern
Declarar a%,b%,c%,d%,e%,f%,g%,h%,h1%,h2%,i%,k%,l%,L1%,L2%,m%,m1%,m2%,\
n%,n1%,n2%,p%,kartag%,karmonat%,ostermontag%,ostermonat%
Let a%=Mod(jahr%,19)
Let b%=Div(jahr%,100)
Let c%=Mod(jahr%,100)
Let d%=Div(b%,4)
Let e%=Mod(b%,4)
Let f%=Div(Add(b%,8),25)
Let g%=Sub(b%,f%)
Inc g%
Let g%=Div(g%,3)
Let h1%=Mul(19,a%)
Let h2%=Sub(b%,d%)
Sub h2%,g%
Add h2%,15
Let h%=Add(h1%,h2%)
Let h%=Mod(h%,30)
Let i%=Div(c%,4)
Let k%=Mod(c%,4)
Let L1%=Mul(2,e%)
Add L1%,32
Let L2%=Mul(2,i%)
Add L1%,L2%
Let L2%=Add(h%,k%)
Let l%=Sub(L1%,L2%)
Let l%=Mod(l%,7)
Let m1%=Mul(11,h%)
Let m2%=Mul(22,l%)
Let m%=Add(a%,m1%)
Add m%,m2%
Let m%=Div(m%,451)
Let n1%=Mul(7,m%)
Let n%=Add(h%,l%)
Sub n%,n1%
Let n2%=Add(n%,114)
Let n%=Div(n2%,31)
Let p%=Mod(n2%,31)
Inc p%
Let ostersonntag$=@Add$(@Add$(@Add$(@Formato$("0#",p%),"."),@Formato$("0#",n%)),". Ostersonntag")
' *** Karfreitag
Let kartag%=Sub(p%,2)
Let karmonat%=n%
If Equ(p%,1)
Let kartag%=30
Let karmonat%=3
ElseIf Equ(p%,2)
Let kartag%=31
Let karmonat%=3
EndIf
Let karfreitag$=@Add$(@Add$(@Add$(@Formato$("0#",kartag%),"."),@Formato$("0#",karmonat%)),". Karfreitag")
' *** Ostermontag ***
If Equ(p%,31)
Let ostermontag%=1
Let ostermonat%=4
Más
Let ostermontag%=Add(p%,1)
Let ostermonat%=n%
EndIf
Let ostermontag$=@Add$(@Add$(@Add$(@Formato$("0#",ostermontag%),"."),@Formato$("0#",ostermonat%)),". Ostermontag")
Let osterzahl%=Add(59,p%)
Case Equ(n%,4):Let osterzahl%=Add(osterzahl%,31)
ENDPROC
Proc Vorostern
Declarar rostag%,rosmon%,aschetag%,aschemonat%
Let rostag%=Sub(osterzahl%,48)
Let schaltjahr%=IsLeapYear(jahr%)
Let rosmon%=2
If And(Equ(schaltjahr%,1),Equ(rostag%,59))
Let rostag%=29
ElseIf And(Equ(schaltjahr%,1),Lt(rostag%,59))
Sub rostag%,30
Más
If Lt(rostag%,60)
Sub rostag%,31
Más
Sub rostag%,59
Inc rosmon%
EndIf
EndIf
Let rosenmontag$=@Add$(@Add$(@Add$(@Formato$("0#",rostag%),"."),@Formato$("0#",rosmon%)),". Rosenmontag")
Let aschetag%=Add(rostag%,2)
Let aschemonat%=rosmon%
If Gt(aschetag%,28)
If Equ(schaltjahr%,1)
If Equ(aschetag%,29)
Let aschemonat%=2
ElseIf Equ(aschetag%,30)
Let aschetag%=1
Let aschemonat%=3
Más
Let aschetag%=2
Let aschemonat%=3
EndIf
Más
If Equ(aschetag%,29)
Let aschetag%=1
Let aschemonat%=3
Más
Let aschetag%=2
Let aschemonat%=3
EndIf
EndIf
EndIf
Let aschermittwoch$=@Add$(@Add$(@Add$(@Formato$("0#",aschetag%),"."),@Formato$("0#",aschemonat%)),". Aschermittwoch")
ENDPROC
Proc Nachostern
Declarar hi%,himon%,pfi%,pfimonat%,pfimo%,frolei%,fromon%,muta%
' Himmelfahrt
Let hi%=Add(osterzahl%,39)
If Gt(hi%,151)
Let himon%=6
Let hi%=Sub(hi%,151)
Más
Let himon%=5
Let hi%=Sub(hi%,120)
EndIf
Let himmelfahrt$=@Add$(@Add$(@Add$(@Formato$("0#",hi%),"."),@Formato$("0#",himon%)),". Himmelfahrt")
' Pfingsten
Let pfi%=Add(osterzahl%,49)
If Gt(pfi%,151)
Let pfimonat%=6
Let pfi%=Sub(pfi%,151)
Más
Let pfimonat%=5
Let pfi%=Sub(pfi%,120)
EndIf
Let pfingstsonnntag$=@Add$(@Add$(@Add$(@Formato$("0#",pfi%),"."),@Formato$("0#",pfimonat%)),". Pfingstsonntag")
' *** Pfingstmontag ***
If Equ(pfi%,31)
Let pfimo%=1
Let pfimonat%=6
Más
Let pfimo%=Add(pfi%,1)
EndIf
Let pfingstmontag$=@Add$(@Add$(@Add$(@Formato$("0#",pfimo%),"."),@Formato$("0#",pfimonat%)),". Pfingstmontag")
' *** Fronleichnam ***
Let frolei%=Add(osterzahl%,60)
If gt(frolei%,151)
Let frolei%=Sub(frolei%,151)
Let fromon%=6
Más
Let fromon%=5
Let frolei%=Sub(frolei%,120)
EndIf
Let fronleichnam$=@Add$(@Add$(@Add$(@Formato$("0#",frolei%),"."),@Formato$("0#",fromon%)),". Fronleichnam")
WochenTag 1,5,jahr%
Let muta%=8
Case %(0): Let muta%=Sub(15,%(0))
Case Equ(pfi%,muta%):Let muta%=Sub(muta%,7)
Let muttertag$=@Add$(@Formato$("0#",muta%),".05. Muttertag ")
ENDPROC
Proc Advent
Declarar 1adv%
WochenTag 31,12,jahr%
Let 1adv%=Sub(33,%(0))
If Gt(1adv%,30)
Let 1advent$=@Add$(@Formato$("0#",Int(Sub(1adv%,30))),".12. 1. Advent")
Más
Let 1advent$=@Add$(@Formato$("0#",1adv%),".11. 1. Advent")
EndIf
Decimals 0
Let bussbettag$=@Add$(@Formato$("0#",Sub(22,%(0))),".11. Buß-y Bettag")
Let volkstrauer$=@Add$(@Formato$("0#",Sub(19,%(0))),".11. Volkstrauertag")
Let totensonntag$=@Add$(@Formato$("0#",Sub(26,%(0))),".11. Totensonntag")
Decimals 6
ENDPROC
Proc TextAusgabe
Declarar v$,e%
Dim Tabs#,20
long Tabs#,0=20
long Tabs#,4=20
long Tabs#,8=20
long Tabs#,12=20
long Tabs#,16=20
setdialogfont 1
let v$="\t"
let Tabtexv$[0]=@Add$("Feiertage en Deutschland en el Jahre ",@Str$(jahr%))
let Tabtexv$[1]=@MkStr$("-",@Add(56,@Mul(@Len(@Str$(jahr%)),2)))
let Tabtexv$[2]=@Add$(@Add$("01.01. Neujahr ",v$),"03.10. Tag d. Alemán Einheit")
let Tabtexv$[3]=@Add$(@Add$("06.01. hlg. Drei Könige",v$),"31.10. Reformationstag ")
let Tabtexv$[4]=@Add$(@Add$("14.02. Valentinstag ",v$),"11.11. Allerheiligen ")
let Tabtexv$[5]=@Add$(@Add$(rosenmontag$,v$),volkstrauer$)
let Tabtexv$[6]=@Add$(@Add$(aschermittwoch$,v$),bussbettag$)
let Tabtexv$[7]=@Add$(@Add$(@Add$(karfreitag$,v$),v$),totensonntag$)
let Tabtexv$[8]=@Add$(@Add$(ostersonntag$,v$),1advent$)
let Tabtexv$[9]=@Add$(@Add$(ostermontag$,v$),"06.12. Nikolaustag")
let Tabtexv$[10]=@Add$(@Add$("01.05. Tag d. Arbeit",v$)," 24.12. Heiligabend")
let Tabtexv$[11]=@Add$(@Add$(muttertag$,v$)," 25.12. erster Weihnachtstag")
let Tabtexv$[12]=@Add$(@Add$(himmelfahrt$,v$)," 26.12. zweiter Weihnachtstag")
let Tabtexv$[13]=@Add$(@Add$(pfingstsonnntag$,v$),"31.12. Sylvester")
let Tabtexv$[14]=pfingstmontag$
let Tabtexv$[15]=fronleichnam$
let Tabtexv$[16]="15.08. Mariä Himmelfahrt"
sendmessage(Liste%,$0192,5,Tabs#)
sendmessage(Liste%,$0194,mul(0,3),0)
Disponer Tabs#
let e%=0
whilenot equ(e%,17)
addstring(Liste%,tabtexv$[e%])
inc e%
wend
ENDPROC
proc fete
Let jahr% = 0
Mientras que Or(@Lt(jahr%,1),@Gt(jahr%,9999))
Let jahr%=@Entrada$("Bitte una Jahr eingeben:","Feiertage anzeigen",akt_jahr%)
EndWhile
Ostern
Vorostern
Nachostern
Advent
TextAusgabe
EnableWindow Liste%,1
ENDPROC
SetTrueColor 1
Ventana de Estilo 24
Ventana Add(%maxX,10),0-428,345
Título de la ventana "Feiertage"
Popup "&Feiertage"
AppendMenu 100,"&Eingabe"
Separador
AppendMenu 101,"&Beenden"
Popup "Info"
AppendMenu 200,"Autor: XProfan Gemeinschaft"
Cls GSC(15)
let Liste%=control("LISTBOX","",$50B000C1,10,10,403,288,%hwnd,101,%HINSTANCE)
EnableWindow Liste%,0
SetWindowPos %HWnd=Div(Sub(%maxX,428),2),Div(Sub(%maxY,345),2)-428,342;0
Let Ende% = 0
Sinestar encargado Ende%
WaitInput
If Or(@Equ(%MenuItem,-2),@Equ(%MenuItem,101))
Let Ende% = 1
ElseIf @Equ(%MenuItem,100)
SendMessage(Liste%,$0184,0,0)
Let x% = 0
Sinestar encargado @Equ(x%,17)
Let TabTexv$[x%] = ""
Inc x%
EndWhile
EnableWindow Liste%,0
fete
EndIf
EndWhile
SetWindowPos %HWnd=Add(%maxX,10),0-428,402;1
@DestroyWindow(Liste%)
End
Und hier una Codeschnipsel para Mondphasen:
|
| | | | |
| |  ByteAttack | Sí ya klar... Aber wäre doch "geiler" si al en el Datumsfunktionen con einbauen podría. Perl y Php haben lo zb auch drin  |
| | | | |
| |  RGH | Dann hebe Usted el Vorschlag para el nächste Versión en. XProfan X3 es ya en el Release-Phase. Como kommt nichts mehr Neues hinzu.
Saludo Roland |
| | | XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 08.06.2015 ▲ |
| |
|
RespuestaThemeninformationenDieses Thema ha 3 subscriber: |