如何使用日历类获得一个月内的所有日期? [英] How to get all the dates in a month using calender class?

查看:1444
本文介绍了如何使用日历类获得一个月内的所有日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里我想显示日期,如

2013-01-01,
2013-01-02,
2013-01-03,
.
.
...etc

我可以在一个月内获得总天数

I can get total days in a month

private int getDaysInMonth(int month, int year) {
  Calendar cal = Calendar.getInstance();  // or pick another time zone if necessary
  cal.set(Calendar.MONTH, month);
  cal.set(Calendar.DAY_OF_MONTH, 1);      // 1st day of month
  cal.set(Calendar.YEAR, year);
  cal.set(Calendar.HOUR, 0);
  cal.set(Calendar.MINUTE, 0);
  Date startDate = cal.getTime();

  int nextMonth = (month == Calendar.DECEMBER) ? Calendar.JANUARY : month + 1;
  cal.set(Calendar.MONTH, nextMonth);
  if (month == Calendar.DECEMBER) {
     cal.set(Calendar.YEAR, year + 1);
  }
  Date endDate = cal.getTime();

  // get the number of days by measuring the time between the first of this
  //   month, and the first of next month
  return (int)((endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000));
}

有没有人有想法帮助我?

Does anyone have an idea to help me?

推荐答案

如果您只想获得一个月内的最大天数,您可以执行以下操作。

If you only want to get the max number of days in a month you can do the following.

// Set day to one, add 1 month and subtract a day
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1); 
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, -1);
return cal.get(Calendar.DAY_OF_MONTH);

如果你真的想每天打印,那么你可以将月中的日期设置为1并保持在一个循环中添加一天,直到月份发生变化。

If you actually want to print every day then you can just set the day of month to 1 and keep adding a day in a loop until the month changes.

Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1); 
int myMonth=cal.get(Calendar.MONTH);

while (myMonth==cal.get(Calendar.MONTH)) {
  System.out.print(cal.getTime());
  cal.add(Calendar.DAY_OF_MONTH, 1);
}

这篇关于如何使用日历类获得一个月内的所有日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆