Hola. Primero gracias por existir.
Trato de hacer una aplicacion para mi trabajo, lo hago a turnos con esta cadencia - TLTTLLLL-.La idea es de hace un año con cero conocimientos de java y cero de android. La vista calendario no es mia. Para saber los dias de trabajo creo un metodo :
public List<String> diasdeTrabajo(){
int GUARDIACUATRO1 =16071;
SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
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;
}
Le paso los "dias" del mes en formato ddMMyy. y me deuelve "list" con los que trabajo y no. Los que trabajo los pongo en rojo. Bueno pues me hace correcto el mes de enero, febrero,abril, junio, agosto, septiembre y noviembre. Marzo lo adelanta tres dias el resultado y mayo julio, octubre y diciembre lo hace un dia.
No entiendo que pasa. Puedo pensar que es con los dias de los meses (30, 31, 28), pero no se solucionarlo.
la cte GUARDIACUATRO son los dias entre 1de enero de 2014 y el 1 de enero de 1970.
No se si se puede enviar archivos adjuntos. Pero les dejo un enlace con el rar del proyecto solo con la vista y el metodo: https://www.dropbox.com/s/5s7qur50duwaupm/MyCalendarActivity.zip?dl=0.
Por favor me podria indicar alguna linea para poder seguir.
Repito de todos modos muchas gracias por compartir conocimientos de forma tan clara y util.
Un saludo