anchor.diff:      }
     }
   
  +  /// Checks whether [toCompare] has the same date as [date] ignoring the time.
  +  static bool _sameDate(Date date, DateTime toCompare) {
  +    if (date == null || toCompare == null) {
  +      return false;
  +    }
  +    return (date.year == toCompare.year &&
  +        date.month == toCompare.month &&
  +        date.day == toCompare.day);
  +  }
  +
     static DateTime cloneDateTime(DateTime dateTime) {
       return dateTime != null
           ? new DateTime.fromMillisecondsSinceEpoch(
  -            dateTime.millisecondsSinceEpoch)
  +            dateTime.millisecondsSinceEpoch,
  +            isUtc: dateTime.isUtc)
           : null;
     }
   }
  
positive.code:   set date(Date value) {
      if (value != _date) {
        _date = value;
        _updateDateTimeAndNotify();
      }
    }
  
negative.code: 
    /// Returns maximum time for time picker when selected date is maximum date.
    DateTime get maxTime {
      if (_sameDate(_date, maxDateTime)) {
        return cloneDateTime(maxDateTime);
      }
      return null;
  