public void roll(int field,int value){
  boolean increment=value >= 0;
  int count=increment ? value : -value;
  for (int i=0; i < count; i++) {
    roll(field,increment);
  }
}

public void roll ( int field , int value ) { boolean increment = value >= 0 ; int count = increment ? value : - value ; for ( int i = 0 ; i < count ; i ++ ) { roll ( field , increment ) ; } }
adds the given amount to the given field and wraps the value of the field when it goes beyond the maximum or minimum value for the current date . other fields will be adjusted as required to maintain a consistent date .
