Mi desafío del domingo es obtener y persistir días hábiles en un año en particular en un archivo CSV, etc.
Tengo el siguiente código y el problema al que me enfrento es: cómo imprimir fechas en un formato específico, es decir, AAAAMMDD, ya que el código actualmente imprime algo como Sábado 19 de enero 00:00:00 CET 2019.
Además, si puedo excluir los fines de semana y, en general, si hay una mejor manera de escribir un código mucho más corto en Java 8.
import java.io.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class DatesInYear
{
public static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
public static void main (String[] args) throws java.lang.Exception
{
Date dt = new Date();
System.out.println(dt);
List<Date> dates = printDates("20190101","20191231");
Collections.reverse(dates);
System.out.println(dates.size());
for(Date date:dates)
{
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
System.out.println(format1.format(date));
}
}
public static List<Date> printDates(String fromDate, String toDate)
{
ArrayList<Date> dates = new ArrayList<Date>();
try {
Calendar fromCal = Calendar.getInstance();
fromCal.setTime(dateFormat .parse(fromDate));
Calendar toCal = Calendar.getInstance();
toCal.setTime(dateFormat .parse(toDate));
while(!fromCal.after(toCal))
{
dates.add(fromCal.getTime());
fromCal.add(Calendar.DATE, 1);
}
} catch (Exception e) {
System.out.println(e);
}
return dates;
}
}
String date1 = format1.format(date);
a continuación, usted no hace nada con el date1
. Pero estás en el camino correcto.
Calendar
también se puede usar para verificar el día de la semana.
System.out.println(date)
use eldateFormat
que ya hizo para formatearlo de la manera que lo necesita.