public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入年份");
int year = 2020;
int m = 1;//月份计数
while (m < 13) {
int month = m;
Calendar cal = Calendar.getInstance();//获得当前日期对象
cal.clear();//清除信息
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);//1月从0开始
int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int week = cal.get(Calendar.DAY_OF_WEEK);
System.out.printf("\t\t\t%d年%d月\n\n", year, month);
System.out.print("日\t一\t二\t三\t四\t五\t六\n");
int i;
for (i = 0; i < week - 1; i++) {
System.out.print("\t");
}
for (int j = 1; j <= count; j++) {
System.out.print(j + "\t");
if ((i + j) % 7 == 0) {
System.out.println();
}
}
System.out.println();
m++;
}
}
/* public static void main(String[] args) throws ParseException {
Calendar dayc1 = new GregorianCalendar();
Calendar dayc2 = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("yy-MM-dd");
Date daystart = df.parse("17-2-1"); //按照yyyy-MM-dd格式转换为日期
Date dayend = df.parse("17-12-31");
dayc1.setTime(daystart); //设置calendar的日期
dayc2.setTime(dayend);
int year = dayc1.get(Calendar.YEAR);
int month = dayc1.get(Calendar.MONTH)+1;
int day = dayc1.get(Calendar.DATE);
for (; dayc1.compareTo(dayc2) <= 0; ) { //dayc1在dayc2之前就循环
System.out.println( "年月日"
+ dayc1.get(Calendar.YEAR) + "-" + dayc1.get(Calendar.MONTH) + "-" + dayc1.get(Calendar.DATE) ); //打印年月日
dayc1.add(Calendar.DAY_OF_YEAR, 1); //加1天
}
}*/
/* public static void main(String args[ ])
{
Date m = new Date( );
System.out.println("现在是:"+m.toString( ));
Calendar n = Calendar.getInstance( );
int year = n.get(Calendar.YEAR);
int month = n.get(Calendar.MONTH)+1;
int day = n.get(Calendar.DATE);
int week = n.get(Calendar.DAY_OF_WEEK)-1;
Date t = n.getTime ( );
String week1 = new String("日一二三四五六");
String week2=week1.substring(week, week+1);
String x = new String( );
x = "现在是:"+year+"年"+month+"月"+day+"日,星期"+week2;
System.out.println("现在是:"+t);
System.out.println(x);
}*/
/* 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);
}
}
*/
// public static void main(String[] args) throws ParseException {
// String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
// Calendar calendar=Calendar.getInstance();
// calendar.set(2017, 12, 1);
// long next =calendar.getTimeInMillis();
// calendar.add(Calendar.MONTH,-1); //这里想要得到当月的月份,这里写0不行?
// while(calendar.getTimeInMillis()!=next)
// {
// System.out.println(calendar.getTime().toLocaleString());
// int w = calendar.get(Calendar.DAY_OF_WEEK)-1;
// if (w<0) {
// w=0;
// }
// System.out.println(weekDays[w]);
// int i=1;
// calendar.add(Calendar.DAY_OF_MONTH, i++);
// }
//
//
// }
/**
* 查询某时间段内的所有日期列表,包括开始日期,不包括结束日期
* @param dBegin,dEnd
* @return List<String>
*/
public static List<String> findDates(String dBegin, String dEnd) {
//日期工具类准备
DateFormat format = new SimpleDateFormat("yyyyMMdd");
try {
//设置开始时间
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(format.parse(dBegin));
//使包括开始日期
calBegin.set(Calendar.DAY_OF_YEAR, calBegin.get(Calendar.DAY_OF_YEAR) - 1);
//设置结束时间
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(format.parse(dEnd));
//使不包括结束日期
calEnd.set(Calendar.DAY_OF_YEAR, calEnd.get(Calendar.DAY_OF_YEAR) - 1);
//装返回的日期集合容器
List<String> DateList = new ArrayList<String>();
// 每次循环给calBegin日期加一天,直到calBegin.getTime()时间等于dEnd
while (calEnd.getTime().after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
DateList.add(format.format(calBegin.getTime()));
}
return DateList;
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
}
java获取一年的所有时间,集合 Calendar年月日星期
最新推荐文章于 2024-07-02 23:25:48 发布