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 list = getTime("2015-06-26", "2014-02-14");
System.out.println(list);
getTime("2015-06-26");
}
//查询时间段所在的月时间段。这个可能用到月目标业绩
public static List getTime (String startTime,String endTime) throws ParseException{
List list = new ArrayList();
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 进行确定某个月的第一天和最后一天。
}
}