@Override public boolean validarFecha(int dia, int mes, int anio, boolean bool) { // creo el calendario que me dara el timestamp en milisegundos Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, dia); cal.set(Calendar.MONTH, mes); cal.set(Calendar.YEAR, anio); mes = mes + 1; // a partir del calendario puesto en fecha obtengo los milisegundos long t = cal.getTimeInMillis(); // + (1000 * 60 * 60 * 24 * 7 * 4); long current = new Date().getTime(); long dif = current - t; Integer mili_week = 604800000; Long week = dif / mili_week; ++week; Log.d("sqle", "" + dif + " / " + mili_week + " = " + week); Date aux = new Date(t); Log.d("sqle", aux.toString()); if (t <= current /*|| week == 0*/) { // guardo el texto con la fecha y la calculo try { String fecha = " " + dia + "-" + mes + "-" + anio; String timestamp = "" + t; String week_str = "" + week; Log.d("sqle", "fecha " + fecha); HashMap<String, String> map = new HashMap<String, String>(); map.put("fecha_str", fecha); map.put("fecha_t", timestamp); map.put("fecha_en_semanas", week_str); MySQLiteHelper db = new MySQLiteHelper(this); if (bool) { db.updateFechaPeriodo(map); bool = true; } else { if (db.agregarFechas(map)) { bool = true; } else { bool = false; } } } catch (Exception e) { Toast.makeText( PanzaGaleria.this, "No se pudo guardar la fecha. Se le requerira en algunas secciones.", Toast.LENGTH_LONG) .show(); bool = false; } } else { // lanzo un error y le digo que ponga bien la fecha Toast.makeText(PanzaGaleria.this, "Fecha no valida", Toast.LENGTH_SHORT).show(); this.ingresarFecha(); bool = false; } return bool; }