#Include vhLib.Macro YYYYMMDD2EuropeanDate(Date) Set Date = $$$DePunc(Date) quit $E(Date,7,8)_"."_$E(Date,5,6)_"."_$E(Date,1,4) IsValidEuropeanDate(EuropeanDate) new result set result = 0 set result = ( $length( EuropeanDate ) = 10 ) if result set result = ( EuropeanDate?2N1"."2N1"."4N ) if result set result = ( $piece(EuropeanDate,".",1) > 0 ) if result set result = ( $piece(EuropeanDate,".",1) < 32 ) if result set result = ( $piece(EuropeanDate,".",2) > 0 ) if result set result = ( $piece(EuropeanDate,".",2) < 13 ) if result , ( "04060911"[$piece(EuropeanDate,".",2)) set result = ( $piece(EuropeanDate,".",1) < 31 ) if result , $piece(EuropeanDate,".",2)="02" { if $$IsLeapYear($$EuropeanDate2Year(EuropeanDate)) set result = ( $piece(EuropeanDate,".",1) < 30 ) if '$$IsLeapYear($$EuropeanDate2Year(EuropeanDate)) set result = ( $piece(EuropeanDate,".",1) < 29 ) } quit result ; --------------------------------------------------------------------------------------------------------------------------- NormalizeHHMM(Time) new PiecePart for PiecePart = 1 : 1 : 2 if $length($piece(Time,":",PiecePart))=1 set $piece(Time,":",PiecePart) = "0"_$piece(Time,":",PiecePart) quit Time ; --------------------------------------------------------------------------------------------------------------------------- IsValidHHMM(Time) new result set result = Time?2N1":"2N if result set result = $$IsValidHHMMSS(Time_":00") quit result ; --------------------------------------------------------------------------------------------------------------------------- IsValidHHMMSS(Time) new result set result = Time?2N1":"2N1":"2N if result { new Hours set Hours = $piece(Time,":",1) set result = (Hours>-1)&&(Hours<24) } if result { new Minutes set Minutes = $piece(Time,":",2) set result = (Minutes>-1)&&(Minutes<60) } if result { new Seconds set Seconds = $piece(Time,":",3) set result = (Seconds>-1)&&(Seconds<60) } quit result ; --------------------------------------------------------------------------------------------------------------------------- HHMMSSToHorolog(Time) quit $ZTH($TR(Time,"/;., ",":::::"),,"") EuropeanDate2Year(EuropeanDate) quit $piece(EuropeanDate,".",3) ;--------------------------------------------------------------------------------------------------- IsLeapYear(Year) quit $$LEAP^%DATE(Year)