Meine sonntägliche Herausforderung besteht darin, Arbeitstage in einem bestimmten Jahr in eine CSV-Datei usw. zu integrieren.
Ich habe folgenden Code und das Problem, mit dem ich konfrontiert bin, ist: wie man Daten in einem bestimmten Format druckt, dh JJJJMMTT, da der Code derzeit so etwas wie Sa 19 Jan 00:00:00 CET 2019 druckt.
Auch wenn ich Wochenenden ausschließen kann und generell, wenn es eine bessere Möglichkeit gibt, einen viel kürzeren Code in Java 8 zu schreiben.
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);dann machst du nichts mit date1. Aber Sie sind auf dem richtigen Weg.
Calendarkann auch verwendet werden, um den Wochentag zu überprüfen.
System.out.println(date)Verwenden Sie nicht nur dasdateFormat, was Sie bereits erstellt haben, um es so zu formatieren, wie Sie es benötigen.