BTemplates.com

Diberdayakan oleh Blogger.

Pages

Pages - Menu

Popular Posts

Rabu, 21 November 2007

Function Week Of Month


&& FUNCTION WeekOfMonth
&& PARAMETERS _Date,_Mode
&& Nilai RETURN tergantung PARAMETER _Mode 
&& jika _Mode=0 Nilai RETURN Numerik, yaitu : -1,1,2,3,4,5
&& jika _Mode=1 Nilai RETURN karakter, yaitu :
&& "" jika error atau 
&& "1'st of MonthName" atau "2'nd of MonthName" dst s/d "5'th of MonthName"
&& jika _Mode= 2 dst Nilai RETURN karakter seperti pada _Mode=1 tapi ada tambahan bulan/tahun

FUNCTION WeekOfMonth
PARAMETERS _Date,_Mode
PRIVATE _Date,_Hr,_Bl,_Th,_DateTest,_MingguKe,_Balik,_Mode
IF VARTYPE(_Mode)<>"N"
_Mode=0
ENDIF
IF VARTYPE(_Date)<>"D"
RETURN IIF(_Mode=0,-1,"")
ENDIF
_SetDate=SET("Date")
_SetCentury=SET("CENTURY")
SET DATE ITALIAN 
SET CENTURY ON 
_Hr=DAY(_Date)
_Bl=MONTH(_Date)
_Th=YEAR(_Date)
_DateTest=CTOD("01"+"-"+PADL(_Bl,2,"0")+"-"+PADL(_Th,4,"0"))
_MingguKe=1
DO WHILE _DateTest<_Date
_DateTest=_DateTest+1
IF DOW(_DateTest)=1
_MingguKe=_MingguKe+1
ENDIF 
ENDDO 
IF !EMPTY(_SetDate)
SET DATE &_SetDate
ENDIF 
IF !EMPTY(_SetCentury)
SET CENTURY &_SetCentury
ENDIF 
_Balik=-1
DO CASE 
CASE _Mode=1
DO CASE 
CASE _MingguKe=1
_Balik="1'st of "+CMONTH(_Date)
CASE _MingguKe=2
_Balik="2'nd of "+CMONTH(_Date)
CASE _MingguKe=3
_Balik="3'th of "+CMONTH(_Date)
CASE _MingguKe=4
_Balik="4'th of "+CMONTH(_Date)
OTHERWISE 
_Balik="5'th of "+CMONTH(_Date)
ENDCASE 
CASE _Mode=2
DO CASE 
CASE _MingguKe=1
_Balik=CMONTH(_Date)+" 1'st"
CASE _MingguKe=2
_Balik=CMONTH(_Date)+" 2'nd"
CASE _MingguKe=3
_Balik=CMONTH(_Date)+" 3'th"
CASE _MingguKe=4
_Balik=CMONTH(_Date)+" 4'th"
OTHERWISE 
_Balik=CMONTH(_Date)+" 5'th"
ENDCASE 
CASE _Mode=3
DO CASE 
CASE _MingguKe=1
_Balik=PADL(_Th,4,"0")+" "+CMONTH(_Date)+" 1'st"
CASE _MingguKe=2
_Balik=PADL(_Th,4,"0")+" "+CMONTH(_Date)+" 2'nd"
CASE _MingguKe=3
_Balik=PADL(_Th,4,"0")+" "+CMONTH(_Date)+" 3'th"
CASE _MingguKe=4
_Balik=PADL(_Th,4,"0")+" "+CMONTH(_Date)+" 4'th"
OTHERWISE 
_Balik=PADL(_Th,4,"0")+" "+CMONTH(_Date)+" 5'th"
ENDCASE 
OTHERWISE 
_Balik=_MingguKe
ENDCASE 
RETURN _Balik

0 komentar:

Posting Komentar