private Pair<String,Boolean> describeRain(Calendar calendar,int temperatureMod){
  int month=calendar.get(Calendar.MONTH);
  month=10 * Math.abs(month - 6);
  int hour=calendar.get(Calendar.HOUR_OF_DAY);
  hour=Math.abs((hour + 21) % 24 - 12) / 2;
  int temp=temperature.getValue() - hour - month + (temperatureMod * 10);
  LOGGER.debug("Modified temp: " + temp + " zone modifier: "+ temperatureMod);
  if (temp <= -30) {
    return new Pair<String,Boolean>("snow",Boolean.FALSE);
  }
  return new Pair<String,Boolean>("rain",temp >= -5 && thunder.getDescription(0) != null);
}

private Pair < String , Boolean > describeRain ( Calendar calendar , int temperatureMod ) { int month = calendar . get ( Calendar . MONTH ) ; month = 10 * Math . abs ( month - 6 ) ; int hour = calendar . get ( Calendar . HOUR_OF_DAY ) ; hour = Math . abs ( ( hour + 21 ) % 24 - 12 ) / 2 ; int temp = temperature . getValue ( ) - hour - month + ( temperatureMod * 10 ) ; LOGGER . debug ( "Modified temp: " + temp + " zone modifier: " + temperatureMod ) ; if ( temp <= - 30 ) { return new Pair < String , Boolean > ( "snow" , Boolean . FALSE ) ; } return new Pair < String , Boolean > ( "rain" , temp >= - 5 && thunder . getDescription ( 0 ) != null ) ; }
describe either rain or snow , depending on the time , temperature and temperature modifiers .
