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

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 进行确定某个月的第一天和最后一天。
	}
}

谢谢大家的支持与厚爱我会继续加油的!~

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-03 07:28:55

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

查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据

select total_user from a_user_no where date_time=(select max(date_time) from a_user_no  where '2013-05'+ "'=to_char(date_time,'yyyy-mm')); 通过max 函数来去5月份出现最大日期的数据 查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据,布布扣,bubuko.com

mysql查询一天,查询一周,查询一个月的数据【转】

转自:http://www.cnblogs.com/likwo/archive/2010/04/16/1713282.html 查询一天: select * from table where to_days(column_time) = to_days(now());select * from table where date(column_time) = curdate(); 查询一周: select * from table   where DATE_SUB(CURDATE(), INTER

SQL查询一个月第一天/最后一天及日期格式化

1.一个月第一天的Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 5.当天的半夜Select DATEADD(dd,

java语言利用MySQL数据库自带的DATE_SUB()函数查询一周、一个月、半年、一年之内的数据记录

在JSP页面中根据论坛帖子的发帖时间查询帖子记录,前台JSP页面代码如下: <s:form id="postTime" action="findPostByTime" method="post" theme="simple" target="mFrame"> <table class="tab_data" width="70%" > <t

java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import org.junit.Test; public class TestDateUtil { //1.获取当月第一天 @Test public void testForDate(){ //规定返回日期格式 SimpleDateFormat sf=ne

学了近一个月的java web 感想

对于每天学习的新知识进行一定的总结,是有必要的. 之前我学的每一门知识,我都没有怎么总结自己的问题,也没有怎么去想想该怎样才能学的更好,把知识掌握的更牢固.从现在开始呢,我会每半个月,或每一个月总结总结自己的不足或是感觉自己良好的地方.让自己变得更好.我现在正在学习Java Web: 刚接触java web的时候,就感觉应该会比之前学的科目(html css C语言 java)会难些的.我们的老师也讲得是比较慢的.我的老师也是个比较活泼的老师.在课堂上他如果是看见班上的同学有走神的,或是没有精神

java实现一个月的最后一个星期天

Calendar instance = Calendar.getInstance(); System.out.println(instance.getTime()); instance.add(Calendar.MONTH, 1);//月份+1 instance.set(Calendar.DAY_OF_MONTH, 1);//天设为一个月的第一天 System.out.println(instance.getTime()); instance.add(Calendar.DAY_OF_MONTH,

自学一个月的java了

不知道这篇博文有不有朋友看到.先自我介绍一下,硕士一年级下学期. 对编程感兴趣,硕士一年级下学期转学计算机专业,目前刚好一个月的时间.接触计算机也是刚好一个月的时间. 学习了java,javaweb.java只是学了基础的章节,很多题目没有做,只是了解一些基础的东西.因为想早点对这些东西有一些了解,就继续学习了javaweb,现在算是遇到了一点瓶颈了,javaweb里面的JSP和SERVLET还没有完全搞清楚,不过,我总是觉得自己就差那么一点点就可以把基本的东西有个了解了. 经常会遇到很多困难,

学习Java第一个月

翻了翻上个月的随笔,学习Java语言已经过去一个月了. 对自己这个月里的学习进程很不满意,可以用糟糕来形容.面向对象课程老师讲了一遍别的同学能懂,而我要用整整一星期才能理解它的皮毛.别人数组很快能够掌握,而我涉及到数组还要翻书才能敲代码,封装和static静态变量刚看完就更没信心了,因为别人上周就已经把继承多态都学完了… 我落后别人整整一章节,预习想赶也赶不上,上课听不懂,布置的作业拖一周才会做…我承认自己头脑不灵活,自律差,这些都怪我自己. 而现在最大的问题是我学习Java语言的信心已经没那么