求java中Calendar类的用法例子(并附每条注释)
发布网友
发布时间:2022-04-28 13:01
我来回答
共4个回答
热心网友
时间:2023-01-23 16:47
建议自己查api这样有助于你的理解。/**
* 获得当月第一天的日期时间 yyyy-MM-dd HH:mm:ss
* @param date
* @return
*/
public static String getMonthFirstDate(Date date) { if (date == null) {
date = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(date); /*
* 设定日期
*/
Integer minDateNum = c.getActualMinimum(Calendar.DAY_OF_MONTH);
c.set(Calendar.DAY_OF_MONTH, minDateNum); /*
* 设定小时、分钟、秒
*/
c.set(Calendar.HOUR, c.getActualMinimum(Calendar.HOUR));
c.set(Calendar.AM_PM, Calendar.AM);
c.set(Calendar.MINUTE, c.getActualMinimum(Calendar.MINUTE));
c.set(Calendar.SECOND, c.getActualMinimum(Calendar.SECOND)); return FORMATTOSEC24.format(c.getTime());
} /**
* 获得当月最有一天的日期时间 yyyy-MM-dd HH:mm:ss
* @param date
* @return
*/
public static String getMonthLastDate(Date date) { if (date == null) {
date = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(date); /*
* 设定日期
*/
Integer maxDateNum = c.getActualMaximum(Calendar.DAY_OF_MONTH);
c.set(Calendar.DAY_OF_MONTH, maxDateNum); /*
* 设定小时、分钟、秒
*/
c.set(Calendar.HOUR, c.getActualMaximum(Calendar.HOUR));
c.set(Calendar.AM_PM, Calendar.PM);
c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE));
c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND));
return FORMATTOSEC24.format(c.getTime());
}
/**
* 获得当月的第一天的日期
*
* @return
* @throws ParseException
*/
@SuppressWarnings("deprecation")
public static String getFristDayofMonth() throws Exception { Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DATE, calendar
.getActualMinimum(Calendar.DAY_OF_MONTH));
return FORMATTODAY.format(calendar.getTime());
} /**
* 获得当月的最后一天的日期
*
* @return
* @throws ParseException
*/
public static String getLastDayOfMonth() throws Exception { Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DATE, calendar
.getActualMaximum(Calendar.DAY_OF_MONTH));
return FORMATTODAY.format(calendar.getTime());
}
/**
* 返回两个日期之间的所有天数的日期
* @param begin
* @param end
* @return
*/
@SuppressWarnings("deprecation")
public static List<Date> getDate(Date begin , Date end){
List<Date> result = new ArrayList<Date>();
while(begin.before(end)){
result.add(new Date(begin.getYear(),begin.getMonth(),begin.getDate()));
begin.setDate(begin.getDate()+1);
}
result.add(end);
return result;
}
/**
* 根据两个日期获得之间所有的工作日期返回一个日期数组
* (工作日不包括星期六和星期日)
*
* @param begin 开始日期
* @param end 结束日期
* @return List<Date> 存放日期的数组
*/
public static List<Date> getDateWeek(Date begin,Date end){
if(null == begin){
begin = new Date();
}
if(null == end){
end = new Date();
}
List<Date> list = DateUtils.getDate(begin, end);
List<Date> result = new ArrayList<Date>();
Calendar calendar = Calendar.getInstance();
for(int i=0;i<list.size();i++){
calendar.setTime(list.get(i));
if (calendar.get(Calendar.DAY_OF_WEEK) == 1
|| calendar.get(Calendar.DAY_OF_WEEK) == 7) {
continue;
}else{
result.add(list.get(i));
}
}
return result;
} /**
* 根据日期类型的数组获得数组里所有日期的星期
* @param list 日期类型的数组
* @return 返回字符串数组
*/
public static List<String> getDateWeeks(List<Date> list){
List<String> result = new ArrayList<String>();
Calendar cal = Calendar.getInstance();
for (int i = 0; i < list.size(); i++) {
cal.setTime(list.get(i));
switch (cal.get(Calendar.DAY_OF_WEEK)) {
case 1:
result.add("星期天");
break;
case 2:
result.add("星期一");
break;
case 3:
result.add("星期二");
break;
case 4:
result.add("星期三");
break;
case 5:
result.add("星期四");
break;
case 6:
result.add("星期五");
break;
case 7:
result.add("星期六");
break;
default:
break;
} }
return result;
}
热心网友
时间:2023-01-23 18:05
我都自己看API的。。。这也问别人干吗,在ECLIPSE上每个用上一次就知道怎么回事了,你问了别人还不是一样得把他放上去运行下,偶有点晕
热心网友
时间:2023-01-23 19:40
你没有java API吗?自己下载个API看吧,每个类的每个方法都有详细的说明
热心网友
时间:2023-01-23 21:31
查API呀,别人给你的都是部分例子,自己查吧,控制时间的方法很多的