Meu desafio de domingo é obter e persistir dias úteis em um ano específico em um arquivo CSV etc.
Tenho o seguinte código e o problema que enfrento é: como imprimir datas em um formato específico, ou seja, AAAAMMDD, pois o código atualmente imprime algo como Sáb Jan 19 00:00:00 CET 2019.
Além disso, se eu puder excluir fins de semana e, geralmente, se houver uma maneira melhor de escrever um código muito menor no 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);
então você não faz nada com date1
. Mas você está no caminho certo.
Calendar
também pode ser usado para verificar o dia da semana.
System.out.println(date)
, use odateFormat
que você já criou para formatá-lo da maneira que você precisar.