anchor.diff:  
       function DateTime : TDateTime;
       function TimeStamp : TTimeStamp;
  +    function truncToDay : TDateTimeEx;
   
       function fixPrecision(Precision : TDateTimeExPrecision) : TDateTimeEx;
   
  
positive.code:   result.RollUp;
  end;
  
  function TDateTimeEx.link: TDateTimeEx;
  begin
    result := self;
  
negative.code:     {else
        dttzUnknown - do nothing }
      end;
  end;
  
  class operator TDateTimeEx.Trunc(a: TDateTimeEx): TDateTimeEx;
  begin
    result := a.truncToDay;
  end;
  
  function TDateTimeEx.truncToDay: TDateTimeEx;
  begin
    result := clone;
    if result.FPrecision > dtpDay then
      result.FPrecision := dtpDay;
    result.hour := 0;
    result.minute := 0;
    result.second := 0;
    result.fraction := 0;
    result.TimezoneType := dttzUnknown;
  end;
  
  function TDateTimeEx.Local: TDateTimeEx;
  