public static void downto(Date self,Date to,Closure closure){
  if (self.compareTo(to) >= 0) {
    for (Date i=(Date)self.clone(); i.compareTo(to) >= 0; i=previous(i)) {
      closure.call(i);
    }
  }
 else   throw new GroovyRuntimeException("The argument (" + to + ") to downto() cannot be later than the value ("+ self+ ") it's called on.");
}

public static void downto ( Date self , Date to , Closure closure ) { if ( self . compareTo ( to ) >= 0 ) { for ( Date i = ( Date ) self . clone ( ) ; i . compareTo ( to ) >= 0 ; i = previous ( i ) ) { closure . call ( i ) ; } } else throw new GroovyRuntimeException ( "The argument (" + to + ") to downto() cannot be later than the value (" + self + ") it's called on." ) ; }
iterates from this date down to the given date , inclusive , decrementing by one day each time .
