DJC,

I can't promise that this will work with 3.60 (as I don't have a copy and won't download) but despite my best knowledge the below WILL work (at any day as these date algorithms are always valid)



break on

global $rd_day,$rd_month,$rd_year,$rd_internal

$CurDefDate = readprofilestring("c:\program files\common files\symantec shared\virusdefs\definfo.dat""DefDates""CurDefs" )

$rd_year    = val(substr($CurDefDate14))
$rd_month   = val(substr($CurDefDate52))
$rd_day     = val(substr($CurDefDate72))

gosub "intdate"

$Def_Int    = $rd_internal

$rd_year    = @year
$rd_month   = @monthno
$rd_day     = @mdayno

gosub "intdate"

$Def_Age = $rd_internal - $Def_Int

"Virus definitions are " + $Def_Age + " Day(s) old"

get $key

exit 1

:intdate ;this is normally CALLed but for clarity I made it a SUB

;
; intdate.kix
;   Library routine to convert a date from Calendar to internal format.
;
;   The algorithm used here is taken directly from the following document:
;      http://www.capecod.net/~pbaum/date/date0.htm
;
; Variables passed:
;        rd_day      IN    Day of month (0-31)
;        rd_month    IN    Month of year (1-12)
;        rd_year     IN    Full year
;        rd_internal OUT   Internal representation
;
; Amendment history:
; Version 1.0 21 June 2000 Richard Howarth
;

dim $MyYear,$MyMonth
$MyYear  = $rd_year
$MyMonth = $rd_month
if $MyMonth < 3
    $MyMonth = $MyMonth + 12
    $MyYear  = $MyYear - 1
endif
$rd_internal = $rd_day + ( 153 * $MyMonth - 457 ) / 5 + 365 * $MyYear + $MyYear / 4 - $MyYear / 100 + $MyYear / 400 - 306

return



($Def_Age is the days between the .dat date and today)

hth
_________________________