Calendar:
cal1.add(Calendar.DAY_OF_MONTH,1);
cal1.add(Calendar.DAY_OF_YEAR,1);
cal1.add(Calendar.DATE,1);
就单纯的add操作结果都一样,因为都是将日期+1,区别就是在月的日期中加1还是年的日期中加1
但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1
将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现
DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。
DAY_OF_WEEK,用来获得当前日期是一周的第几天
package com.goldmei.test;
import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* @author goldmei
* @date 2019/4/29 17:42
*
* java得到指定时间段中的所有周,以及每周的每天都是周几和日期是多少?
* 第一周的开始一天不一定是周一,最后一周的结束一天也不一定是周日!
*/
public class week {
public static void main(String[] args) {
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] weeks = dfs.getWeekdays();
c_begin.set(2019, 3, 2); //Calendar的月从0-11,所以4月是3.
c_end.set(2019, 3, 29); //Calendar的月从0-11,所以5月是4.
int count = 1;
/*
cal1.add(Calendar.DAY_OF_MONTH,1);
cal1.add(Calendar.DAY_OF_YEAR,1);
cal1.add(Calendar.DATE,1);
就单纯的add操作结果都一样,因为都是将日期+1,区别就是在月的日期中加1还是年的日期中加1
但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1
将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现
DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。
DAY_OF_WEEK,用来获得当前日期是一周的第几天
*/
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while (c_begin.before(c_end)) {
System.out.println("第" + count + "周 日期:" + new java.sql.Date(c_begin.getTime().getTime()) + "," + weeks[c_begin.get(Calendar.DAY_OF_WEEK)]);
if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
count++;
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
}
}
运行结果: