English
Source / code snippets

date last month Php week-day

 
sometimes needed to the date the last Wochentages one month's
minus weekend what about me faith there a "coole" Solution for to have:
CompileMarkSeparation
//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"))))

;}


these unregarded the holidays quasi the last workday one month's if
to the hereon following weekend not "arbeiten" must.

Perhaps. has for too someone a xprofansche Solution.
 
05/25/12  
 




Thomas
Freier
concise together copies from the XProfan 10Ner Time. Benötigte whom 3.Werktag to Dateierstellung. whether it a elegantere Berechnung the beweglichen holidays gives???
CompileMarkSeparation
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 present ' AddStrings(FeiertageLV%,st$(_j%)+".12.31") ENDPROC
 
Gruß Thomas
Windows XP SP2, XProfan X2
05/26/12  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

12.665 Views

Untitledvor 0 min.
Peter Max Müller01/15/24
ecki02/10/23
p.specht11/21/21
R.Schneider11/20/21
More...

Themeninformationen

this Topic has 2 subscriber:

iF (1x)
Thomas Freier (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie