私の日曜日の課題は、特定の年の稼働日を取得してCSVなどのファイルに保存することです。
次のコードがあり、私が直面している問題は、特定の形式で日付を印刷する方法です。つまり、コードは現在、Sat Jan 19 00:00:00 CET 2019のようなものを印刷するため、YYYYMMDDです。
また、週末を除外できる場合、および一般的に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);
その後、あなたは何もしませんdate1
。しかし、あなたは正しい軌道に乗っています。
Calendar
曜日の確認にも使用できます。
Javaのバージョンは何ですか?8か9+?
—
ernest_k
私はJava 8を使用しています
—
JavaMan
System.out.println(date)
、使用dateFormat
あなたはすでにあなたがそれを必要とする方法でそれをフォーマットする作りました。