public class DateTime {
private static SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
private static List<Calendar> calList=new LinkedList<Calendar>();
public static void main(String[] args) {
// 年度開始日と終了日
/*
List<String> list=getYearRange(2025);
for(String date : list) {
System.out.println(date);
}
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
Calendar startCal= makeStartCalender(2025);
System.out.println(sdf.format(startCal.getTime()));
calList.add(startCal);
while(true) {
Calendar cal=getNext30Minite(startCal,30);
System.out.println(sdf.format(cal.getTime()));
int diff=startCal.compareTo(cal);
if(diff==0) {
// startCalとcalが同じ日時
break;
}
calList.add(cal);
}
for(Calendar cal: calList) {
// 日付出力する
String strDate=dateFormat.format(cal);
System.out.println(strDate);
}
}
public static Calendar makeStartCalender(int startYear) {
// 指定した年の4月1日
// 2025年の4月1日の場合
Calendar calendar=Calendar.getInstance();
calendar.set(startYear,3,1,0,0,0);
return calendar;
}
public static Calendar makeEndDate(int year) {
Calendar calendar=Calendar.getInstance();
calendar.set(year+1, 2,31,11,59,30);
return calendar;
}
public static Calendar getNext30Minite(Calendar calendar,int addMinite) {
calendar.add(Calendar.MINUTE, addMinite);
return calendar;
}