#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 ;--------------------------------------------------------------------------------------------------- EuropeanDate2Year(EuropeanDate) quit $piece(EuropeanDate,".",3) ;--------------------------------------------------------------------------------------------------- IsLeapYear(Year) quit $$LEAP^%DATE(Year)