当前位置: 代码迷 >> 综合 >> JAVA calender 的使用实现查询一个月的第1天和最后一天,学的是技巧。
  详细解决方案

JAVA calender 的使用实现查询一个月的第1天和最后一天,学的是技巧。

热度:77   发布时间:2024-01-09 11:05:32.0
Calender的使用:
package test;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;public class test {public static void main(String[] args) throws ParseException {List<String> list = getTime("2015-06-26", "2014-02-14");System.out.println(list);getTime("2015-06-26");}//查询时间段所在的月时间段。这个可能用到月目标业绩public static List<String> getTime (String startTime,String endTime) throws ParseException{List<String> list = new ArrayList<String>();SimpleDateFormat startSdf = new SimpleDateFormat("yyyy-MM-dd");Calendar can = Calendar.getInstance();can.setTime(startSdf.parse(startTime));can.set(Calendar.DAY_OF_MONTH, 1);System.out.println(startSdf.format(can.getTime()));list.add(startSdf.format(can.getTime()));can.setTime(startSdf.parse(endTime));can.set(Calendar.DAY_OF_MONTH, 1);can.roll(Calendar.DAY_OF_MONTH, -1);System.out.println(startSdf.format(can.getTime())+" 23:59:59");list.add(startSdf.format(can.getTime())+" 23:59:59");return list;}public static void getTime (String nowTime) throws ParseException{//时间格式话SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//生成Calender的对象 Calendar can = Calendar.getInstance();//将日历翻到当前的时间can.setTime(sdf.parse(nowTime));//设置天是月的第一天can.set(Calendar.DAY_OF_MONTH, 1);System.out.println("时间的nowTime 月的第一天:"+sdf.format(can.getTime()));/*** 输出的结果:* 时间的nowTime 月的第一天:2015-06-01*///如果是想将将加一天 或者是减一天,这是可以用add,和roll这两个函数//add方法can.add(Calendar.DAY_OF_MONTH, 1);System.out.println("时间的nowTime 加一天:"+sdf.format(can.getTime()));can.add(Calendar.DAY_OF_MONTH, -1);System.out.println("时间的nowTime 减一天:"+sdf.format(can.getTime()));//roll方法can.roll(Calendar.DAY_OF_MONTH, 1);System.out.println("时间的nowTime 加一天:"+sdf.format(can.getTime()));can.roll(Calendar.DAY_OF_MONTH, -1);System.out.println("时间的nowTime 减一天:"+sdf.format(can.getTime()));/*** 输出的结果:* 时间的nowTime 加一天:2015-06-02* 时间的nowTime 减一天:2015-06-01* 时间的nowTime 加一天:2015-06-02* 时间的nowTime 减一天:2015-06-01*///有人会问add和roll有什么区别//这是我会对他说roll是循环的意思,这也是他和add的区别所在roll会根据Calendar.DAY_OF_MONTH 这个只进行循环//怎么个循环呢?比如如下代码:现在我将日历调整到2015-06-01我做减一天的操作can.roll(Calendar.DAY_OF_MONTH, -1);System.out.println("时间的nowTime 减一天:"+sdf.format(can.getTime()));can.add(Calendar.DAY_OF_MONTH, 1);System.out.println("时间的nowTime 减一天:"+sdf.format(can.getTime()));/*** 这是输出的结果:* 时间的nowTime 减一天:2015-06-30* 时间的nowTime 减一天:2015-07-01*///所以可以利用这个roll 进行确定某个月的第一天和最后一天。}
}
谢谢大家的支持与厚爱我会继续加油的!~
  相关解决方案