Tengo un problema con un metodo que he realzado sobre calculo de diferencias de fechas. Todo va bien pero a la hora de visualizar el resultado este es optimo unos meses y otros no: Enero ,febrero, abril,junio, agosto , setiembre y noviembre me da correcto pero el resto: marzo se me atrasa dos dias el resutado, mayo, julio,octubre y diciembre lo hace un dia. No se donde puede estar el problema-.
El metodo es el siguiente:
Código:
la variable dias es un arrayList con los dias del mes en formato dd-MM-yy.public List<String> diasdeTrabajo(){ int GUARDIACUATRO1 =16071; SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy", new Locale("es_ES")); Calendar cal = GregorianCalendar.getInstance(); Date date = null; for (int i=0; i< dias.size() ; i++){ try { date = formato.parse(dias.get(i)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } cal.setTime(date); Long dia= cal.getTimeInMillis(); dia = dia/(1000*60*60*24); dia =dia-GUARDIACUATRO1 ; int seg2 = (int) (dia % 8); if(seg2 ==1 || seg2 == 3|| seg2== 4){ list.add(dias.get(i)+"-CURRO"); }else{ list.add(dias.get(i)+"-WHITE"); } } return list; }
La constante son los dias que hay hasta el 1-1-2014
y el return es otro arrayList con los dias que curro en el mes.
Ayuda