Français
Source/ Codesnippets

date dernier mois Php Wochentag

 
quelquefois nécessaire on cela date des letzten Wochentages eines Monats
abzüglich Wochenende et je crois là une "coole" Solution pour trop avons:
KompilierenMarqueSéparation
//PHP:
;echo date_lwdom(time())

;function date_lwdom($time){//last working day of month

    ;$a=explode(".",date_ldom($time,"N.j"))
    ;return ($a[0]>5?$a[1]-$a[0]+5:$a[1])

;}

;function date_ldom($time,$format="j") {//last day of month

    ;return date($format,strtotime("-1 second",strtotime("+1 month",strtotime(date("m",$time)."/01/".date("Y",$time)."00:00:00"))))

;}


ca ist inaperçu qui Feiertage quasi qui dernier Arbeitstag eines Monats si
on cela puis folgende Wochenende pas "arbeiten" muss.

Vlt. hat pour aussi quelqu'un une xprofansche Solution.
 
25.05.2012  
 




Thomas
Freier
Kurz zusammen kopiert aus qui XProfan 10ner Zeit. Benötigte den 3.Werktag pour Dateierstellung. si es une elegantere Berechnung qui beweglichen Feiertage gibt???
KompilierenMarqueSéparation
Def IsLeapYear(1) If( %(1) MOD 4 = 0 ,  %(1) MOD 100 <> 0, %(1) MOD 400 = 0 & 1 | 0 )
cls
Usefont "MS Sans Serif",10,0,0,0,0
SetDialogFont 1
DrawText 10,60,"allg. Feiertage"
var FeiertageLV%=CreateListBox(%hwnd,1,10,90,150,200)
var Datum$="02.02.2012"
FEIERTAGE Datum$
WERKTAG Datum$
waitinput
end

Proc WERKTAG

    Parameters _Datum$
    Declare _t%, _m%, _j%, _wtk%, _wtc%
    _m%=val(substr$(_Datum$,2,"."))
    _j%=val(substr$(_Datum$,3,"."))
    case InStr(substr$(_Datum$,2,"."),"01030507081012") : _t%=31
    case InStr(substr$(_Datum$,2,"."),"0406091011") : _t%=30
    case substr$(_Datum$,2,".") = "02" : _t%=28 + IsLeapYear(val(substr$(_Datum$,3,".")))' Schaltjahr?
    ' 0= Sonntag

    Whileloop 7

        _wtk% = int(0.6+1/_m%)
        _wtc%=int(13*(_m%+12*_wtk%+1)/5)+int(5*(_j%-_wtk%)/4)-int((_j%-_wtk%)/100)+int((_j%-_wtk%)/400)-(7*int((int(13*(_m%+12*_wtk%+1)/5)+int(5*(_j%-_wtk%)/4)-int((_j%-_wtk%)/100)+int((_j%-_wtk%)/400)+_t%-1)/7))+_t%-1

        If (_wtc% <> 0) AND  (_wtc% < 6)

            ' Feiertag?

            If @SelectString(FeiertageLV%,-1,str$(_j%)+"."+Format$("00",_m%)+"."+Format$("00",_t%))=-1

                print "letzer Werktag im " + substr$(_Datum$,2,".")+". Monat des Jahres "+substr$(_Datum$,3,".") + \
                " ist der: " + @Format$("00",_t%)
                BREAK

            EndIf

        EndIf

        dec _t%

    EndWhile

EndProc

Proc FEIERTAGE

    Parameters _Datum$
    var _j%=val(substr$(_Datum$,3,"."))
    AddString(FeiertageLV%,str$(_j%)+".01.01")
    AddString(FeiertageLV%,str$(_j%)+".05.01")
    AddString(FeiertageLV%,str$(_j%)+".10.03")
    Declare osterzahl%
    ' Berechnet den Ostersonntag
    Declare a%,b%,c%,d%,e%,f%,g%,h%,h1%,h2%,i%
    Declare k%,l%,L1%,L2%,m%,m1%,m2%,n%,n1%,n2%,p%
    Declare kartag%,karmonat%,ostermontag%,ostermonat%
    a%=_j% Mod 19
    b%=_j%/100
    c%=_j% Mod 100
    d%=b%/4
    e%=b% Mod 4
    f%=(b%+8)/25
    g%= b% + f%
    Inc g%
    g%=g%/3
    h1%=19*a%
    h2%=b%-d%
    dec h2%,g%
    inc h2%,15
    h%=h1%+h2%
    h%=h% Mod 30
    i%=c%/4
    k%=c% Mod 4
    L1%=2*e%
    inc L1%,32
    L2%=2*i%
    inc L1%,L2%
    L2%=h%+k%
    l%=L1%-L2%
    l%=l% Mod 7
    m1%=11 * h%
    m2%=22+l%
    m%=a%+m1%
    inc m%,m2%
    m%=m%/451
    n1%=7*m%
    n%=h%+l%
    dec n%,n1%
    n2%=n%+114
    n%=n2%/31' n% ist der Monat des Osterdatums
    p%=n2% Mod 31
    Inc p%' p% ist der Tag des Osterdatums
    '   Karfreitag
    kartag%=p%-2
    karmonat%=n%

    If p%=1

        kartag%=30
        karmonat%=3

    ElseIf p%=2

        kartag%=31
        karmonat%=3

    EndIf

    AddString(FeiertageLV%,str$(_j%)+"."+Format$("00",karmonat%)+"."+Format$("00",kartag%))
    '   Ostersonntag"
    AddString(FeiertageLV%,str$(_j%)+"."+Format$("00",n%)+"."+Format$("00",p%))
    '   Ostermontag ***

    If p%=31

        ostermontag%=1
        ostermonat%=4

    Else

        ostermontag%=p%+1
        ostermonat%=n%

    EndIf

    AddString(FeiertageLV%,str$(_j%)+"."+Format$("00",ostermonat%)+"."+Format$("00",ostermontag%))
    ' Berechnung osterabhängiger Feiertage
    osterzahl%=59+p%
    Case n%=4: osterzahl%=osterzahl%+31
    Declare hi%,himon%,pfi%,pfimonat%,pfimo%,frolei%,fromon%,muta%
    ' Himmelfahrt
    hi%=osterzahl%+39

    If hi%>151

        himon%=6
        hi%=hi%-151

    Else

        himon%=5
        hi%=hi%-120

    EndIf

    AddString(FeiertageLV%,str$(_j%)+"."+Format$("00",himon%)+"."+Format$("00",hi%))
    '   Pfingsten
    pfi%=osterzahl%+49

    If pfi%>151

        pfimonat%=6
        pfi%=pfi%-151

    Else

        pfimonat%=5
        pfi%=pfi%-120

    EndIf

    AddString(FeiertageLV%,str$(_j%)+"."+Format$("00",pfimonat%)+"."+Format$("00",pfi%))
    '   Pfingstmontag ***

    If pfi%>31

        pfimo%=1
        pfimonat%=6

    Else

        pfimo%=pfi%+1

    EndIf

    AddString(FeiertageLV%,str$(_j%)+"."+Format$("00",pfimonat%)+"."+Format$("00",pfimo%))
    AddString(FeiertageLV%,str$(_j%)+".12.25")
    AddString(FeiertageLV%,str$(_j%)+".12.26")
    ' wenn Heiligabend nicht als Werktag angesehen wird, als Feiertag eintragen
    '   AddString(FeiertageLV%,str$(_ja%)+".12.24")
    ' wenn Silvester nicht als Werktag angesehen wird, a
ertag eintragen ' AddStrings(FeiertageLV%,str$(_j%)+".12.31") ENDPROC
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.05.2012  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

12.686 Views

Untitledvor 0 min.
Peter Max Müller15.01.2024
ecki10.02.2023
p.specht21.11.2021
R.Schneider20.11.2021
plus...

Themeninformationen

cet Thema hat 2 participant:

iF (1x)
Thomas Freier (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie