Esto vuelve el sistema inexacto, así que procede por investigar como averiguar cuantos viernes tiene un determinado mes, la lógica me dicto, saber la fecha del último viernes, y la del primer viernes, para poder encontrar la fórmula.
Calcular el último viernes.
- Calendar pCal=java.util.GregorianCalendar.getInstance();
- pCal.set(GregorianCalendar.YEAR,2012);
- pCal.set(GregorianCalendar.MONTH,GregorianCalendar.APRIL);
- pCal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);
- pCal.set(GregorianCalendar.DAY_OF_WEEK_IN_MONTH, -1);
- System.out.pritnln("Ultimo viernes: " + pCal.get(GregorianCalendar.DAY_OF_MONTH);
1. Se crea una una instancia de un calendario gregoriano
2. Se indica el año
3. Se indica el mes que se desea, GregorianCalendar en sus atributos maneja los meses en ingles
4. Se indica el día por medio de GregorianCalendar
5. Este es la que importa, el -1 indica el último viernes, no parece lógico a simple vista pero funciona.
6. Se imprime la instancia del calendario accediendo pCal.get indicando que deseamos el número de día en el mes indicado.
Calcular el primer viernes
Es similar a la anterior, solo cambia el parámetro del inciso 5
5. pCal.set(GregorianCalendar.DAY_OF_WEEK_IN_MONTH, 1);
Se cambia a "1" lo que indica que se desea es el primer viernes
Y con esto sabemos la fecha del primer y ultimo viernes de un mes, para poder realizar cálculos con respecto al tiempo, esta solución me fue muy buena, debido que lo primero que vino a mi mente fue un cubo de Datawarehouse, pero no se tienen los recursos para esa solución.