本文讲的java日期计算比较偏,用到的地方很少(比如获取今天所在周的周一或者周日,获取今天是本月的第几周...),这些方法是以前做项目遗留下来的,现在整理一下,跟大家分享。
工具类主要有一下方法:
public static Date getFirstMondayOfMonth(String dateString, String dateFormat) throws Exception
获取指定月份的第一个星期一,比如2014-12 月的第一个周一是2014-12-01
public static int figureWeekIndexOfMonth(String dateString, String dateFormat) throws Exception
计算指定时间属于月份中的第几周,比如2014-12月的第一周是1号到7号,那么2014-12-05 就是12月的第一周,2014-12-12 就是第二周
public static String getMondyOfToday(String format)
获取今天所在周的星期一, 返回一个时间字符串。 如今天是2014-12-8,那么返回的是: 2014-12-08 (今天刚好是本周周一)
public static Date getSundayOfToday()
获取今天所在周的星期天, 如今天是2014-12-8,那么返回的是 2014-12-14
下面是工具类的详细代码:
import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @文件名称 :DateUtil.java * @所在包 :com.nerve.human.common.util * @功能描述 : * 时间格式工具类 * @创建者 :集成显卡 1053214511@qq.com * @公司:IBM GDC * @创建日期 :2013-4-9 * @log : */ public class DateUtil { public static Date toDate(String timeString, String format) throws Exception{ return new SimpleDateFormat(format).parse(timeString); } /** * * @method name: toString * @return type: String * @param date * @param format * @return */ public static String toString(Date date, String format){ String strTime = null; try { SimpleDateFormat simpledateformat = new SimpleDateFormat(format); strTime = simpledateformat.format(date); } catch (Exception ex) { System.err.println("格式化日期错误 : " + ex.getMessage()); } return strTime; } /** * 获取当月的第一个星期一(以中国为例) * @method name: getFirstMonday * @return type: void */ public static Date getFirstMondayOfMonth(String month) throws Exception{ return getFirstMondayOfMonth(month, "yyyy-MM"); } /** * 获取当月的第一个星期一(以中国为例) * @method name: getFirstMonday * @return type: void */ public static Date getFirstMondayOfMonth(String dateString, String dateFormat) throws Exception{ Date date = toDate(dateString, dateFormat); Calendar c = Calendar.getInstance(); c.setTime(date); int step = (9 - c.get(Calendar.DAY_OF_WEEK)) % 7; c.add(Calendar.DAY_OF_YEAR, step); return c.getTime(); } /** * 计算指定时间属于月份中的第几周 * 比如2014-12月的第一周是1号到7号 * 那么2014-12-05 就是12月的第一周 * 2014-12-12 就是第二周 * * @method name: figureWeekIndexOfMonth * @return type: int * * @param date * @return */ public static int figureWeekIndexOfMonth(String dateString, String dateFormat) throws Exception{ Calendar c = Calendar.getInstance(); Date curDate = toDate(dateString, dateFormat); c.setTime(curDate); int day = c.get(Calendar.DAY_OF_MONTH); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); Date firstMondy = getFirstMondayOfMonth(sdf.format(c.getTime())); c.setTime(firstMondy); int index = 0; do{ c.add(Calendar.DAY_OF_MONTH, 7); index ++; } while(c.get(Calendar.DAY_OF_MONTH) < day); return index; } /** * 获取今天所在周的星期一 * @method name: getMondyOfToday * @return type: String * * @return */ public static String getMondyOfToday(String format){ Calendar c = Calendar.getInstance(); int step = c.get(Calendar.DAY_OF_WEEK); //星期天 if(step == 1) step = 6; else step -= 2; c.add(Calendar.DAY_OF_YEAR, -step); return toString(c.getTime(), format); } /** * 获取今天所在周的星期天 * @method name: getMondyOfToday * @return type: String * * @return */ public static Date getSundayOfToday(){ Calendar c = Calendar.getInstance(); int step = c.get(Calendar.DAY_OF_WEEK); if(step != Calendar.SUNDAY) c.add(Calendar.DAY_OF_YEAR, 8-step); return c.getTime(); } /** * 获取指定时间所在的星期天 * @param date * @return */ public static Date getSundayOfDate(Date date){ Calendar c = Calendar.getInstance(); c.setTime(date); int step = c.get(Calendar.DAY_OF_WEEK); if(step != Calendar.SUNDAY) c.add(Calendar.DAY_OF_YEAR, 8-step); return c.getTime(); } }
来个测试截图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍简单实现Android计算器功能,包括了简单实现Android计算器功能的使用技巧和注意事项,需要的朋友参考一下 自己写的安卓的计算器: 注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
本文向大家介绍基于javascript实现简单计算器功能,包括了基于javascript实现简单计算器功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家介绍javascript实现简单计算器功能的详细代码,分享给大家供大家参考,具体内容如下 效果图: 实现代码: 希望本文所述对大家学习javascript程序设计有所帮助。
本文向大家介绍一个简单的jQuery计算器实现了连续计算功能,包括了一个简单的jQuery计算器实现了连续计算功能的使用技巧和注意事项,需要的朋友参考一下 一个简单的jQuery计算器,只是实现了一个连续计算的功能
本文向大家介绍jQuery实现简单日期格式化功能示例,包括了jQuery实现简单日期格式化功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现简单日期格式化功能。分享给大家供大家参考,具体如下: 代码如下,引入jquery后直接后加入以下代码刷新可测试 运行结果如下: 更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery日期与时间操作技巧总结》、《jQ
本文向大家介绍vue实现简易计算器功能,包括了vue实现简易计算器功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue实现简易计算器的具体代码,供大家参考,具体内容如下 功能介绍 1、可以实现加减乘除 2、可以实现归零 3、实现退格 效果图一般般,样式随便写的,主要看功能以及实现方法 代码加解释 1、HTML部分 首先布局,把要做的样子写出来,为每一个按键绑定一个点击事件 2、
本文向大家介绍js实现简单计算器,包括了js实现简单计算器的使用技巧和注意事项,需要的朋友参考一下 参考部分资料,编写一个简单的计算器案例,虽然完成了正常需求,但是也有不满之处,待后续实力提升后再来补充,先把不足之处列出: 1:本来打算只要打开页面,计算器的输入框会显示一个默认为0的状态,但是在输入框加入默认显示为0的时候,选择数据输入时,该0会显示输入数字的前面,例如”0123“,由于能力有