`

一个日期的常用处理工具类

    博客分类:
  • JAVA
阅读更多
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/** *//**
 * 
 * @author zzk
 *
 */
public class DateUtil {
    /** *//**
     * 取得某天相加(减)後的那一天
     * 
     * @param date
     * @param num(可正可负)
     * @return
     */
    public static Date getAnotherDate(Date date, int num) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DAY_OF_YEAR, num);
        return c.getTime();
    }
    /** *//**
     * 取得某月的的最后一天
     * 
     * @param year
     * @param month
     * @return
     */
    public static Date getLastDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);// 年
        cal.set(Calendar.MONTH, month - 1);// 月,因为Calendar里的月是从0开始,所以要减1
        cal.set(Calendar.DATE, 1);// 日,设为一号
        cal.add(Calendar.MONTH, 1);// 月份加一,得到下个月的一号
        cal.add(Calendar.DATE, -1);// 下一个月减一为本月最后一天
        return cal.getTime();// 获得月末是几号
    }
    /** *//**
     * 取得某天是一年中的多少周
     * 
     * @param date
     * @return
     */
    public static int getWeekOfYear(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setMinimalDaysInFirstWeek(7);
        c.setTime(date);
        return c.get(Calendar.WEEK_OF_YEAR);
    }
    /** *//**
     * 取得某天所在周的第一天
     * 
     * @param date
     * @return
     */
    public static Date getFirstDayOfWeek(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setTime(date);
        c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
        return c.getTime();
    }
    /** *//**
     * 取得某天所在周的最后一天
     * 
     * @param date
     * @return
     */
    public static Date getLastDayOfWeek(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setTime(date);
        c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);
        return c.getTime();
    }
    /** *//**
     * 取得某一年共有多少周
     * 
     * @param year
     * @return
     */
    public static int getMaxWeekNumOfYear(int year) {
        Calendar c = new GregorianCalendar();
        c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
        return getWeekOfYear(c.getTime());
    }
    
    /** *//**
     * 取得某年某周的第一天
     * 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-05为2009年第一周的第一天
     * @param year
     * @param week
     * @return
     */
    public static Date getFirstDayOfWeek(int year, int week) {
        Calendar calFirst = Calendar.getInstance();
        calFirst.set(year, 0, 7);
        Date firstDate = getFirstDayOfWeek(calFirst.getTime());
        Calendar firstDateCal = Calendar.getInstance();
        firstDateCal.setTime(firstDate);
        Calendar c = new GregorianCalendar();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, Calendar.JANUARY);
        c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
        Calendar cal = (GregorianCalendar) c.clone();
        cal.add(Calendar.DATE, (week - 1) * 7);
        firstDate = getFirstDayOfWeek(cal.getTime());
        return firstDate;
    }
    /** *//**
     * 取得某年某周的最后一天
     * 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-04为2008年最后一周的最后一天
     * @param year
     * @param week
     * @return
     */
    public static Date getLastDayOfWeek(int year, int week) {
        Calendar calLast = Calendar.getInstance();
        calLast.set(year, 0, 7);
        Date firstDate = getLastDayOfWeek(calLast.getTime());
        Calendar firstDateCal = Calendar.getInstance();
        firstDateCal.setTime(firstDate);
        Calendar c = new GregorianCalendar();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, Calendar.JANUARY);
        c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
        Calendar cal = (GregorianCalendar) c.clone();
        cal.add(Calendar.DATE, (week - 1) * 7);
        Date lastDate = getLastDayOfWeek(cal.getTime());
        
        return lastDate;
    }
}
分享到:
评论

相关推荐

    最全Java常用日期处理工具类

    该Java工具类调用时只需要类名.方法即可调用。 1.返回纯数字的年月日时分秒时间戳:20191008103656 4.在日期上增加数个整月 5.在日期上增加天数 6.在日期上增加n分钟 7.两个时间相差距离多少天多少小时...

    java常用工具类

    文件工具类,Http请求工具类,图片处理工具类。...mail工具类,Map工具类,MD5编码工具类,数字工具类,随机数工具类,反射工具类,字符串处理工具类,URL工具类,XML工具类,常用的数据验证工具类

    javaweb项目常用工具包

    Base64工具类-字符编码工具类-数据类型转换-日期工具类-Escape中文...MD5编码工具类- MD5加密 生成32位md5码-数字工具类-随机数工具类-反射工具类-字符串处理工具类-URL工具类-UUID-常用的数据验证工具类-XML工具类-

    java日期处理工具类

    * 在工具类中经常使用到工具类的格式化描述,这个主要是一个日期的操作类,所以日志格式主要使用 SimpleDateFormat的定义格式. * * 格式的意义如下: 日期和时间模式 * 日期和时间格式由日期和时间模式...

    日期常用万能工具类,percent

    日期工具类,包含日期格式处理、比较、获取两个日期间隔天数、月数,以及指定日期前后N天的日期和指定月份的第一天、最后一天等方法

    时间日期处理公用类

    针对时间日期各种格式之间转换等操作的公用类。

    Java常用工具类集合

    这个包里面包括了Java对数据和日期的处理,以及对图像处理、XML处理和HTML处理等工具类,另外还有其他一些有用类。

    自己收集整理的一些常用的工具类

    DateUtil 日期操作工具类 DbHelper 数据库帮助类 DensityUtil 屏幕信息获取数值的转换 DeviceStatusUtils 手机状态工具类 主要包括网络、蓝牙、屏幕亮度、飞行模式、音量等 DigestUtils DigestUtils FileUtils 文件...

    android 开发常用工具类集合

    丰富的工具类框架 包含常用的工具类方便快速开发 持续更新中 可直接使用implementation 引入使用 2018.9.17 工具类集合 MLog工具类 日期获取工具类 网络检查工具类 权限检查工具类 MD5工具类 日志保存工具类...

    Java常用工具类.zip

    自己整理的java常用的工具类,字符串、日期,文件,连接多个数据库,MD5,ftp二进制与ascii传输方式区别,日志管理等等等常用类处理

    常用的Java工具类

    Java常见的工具类,有40多个常见工具类,包括密码加密解密,日期的处理,字符串的处理,定位的经纬的计算,文件的处理,excel文件的处理....等等等

    日期格式化工具类

    日期操作是日常开发当中最常见的操作之一,故开放下自己封装的常用工具操作方法。 在java中队日期类型的处理并不方便,通常都需要借助java.text.SimpleDateFormat类来实现日期类型 和字符串类型之间的转换,但是在...

    邮件发送 poi 二维码 条形码等java常用的工具类

    FileOperater:文件处理工具类 包括 读取文本文件,写出文本文件, 大文件切分,文件下载,文件或文件夹比较,文件或文件夹遍历筛选 ...... HttpClientCard:http工具类 HttpUtil:http工具类 Identification:...

    java常用工具类的使用

    在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...

    JAVA常用工具类,一个五年开发经验的工程师上传的,但是要分我拿来1分让你们下载

    java常用工具类,里面有数据库、日期处理、字符转转换等常用功能!

    Android-存放项目中常用的工具类

    存放项目中常用的工具类,比如:字符串处理、日期处理、文件上传下载压缩、获取拼音、MD5码、路径处理、导出到Excel、UUID、排序算法、水印等常用工具

    json工具类,java日期转换,字符串转换等各种工具类

    json读取 java日期转换 字符串转换 各种类型互相转换 集合排序 日期处理等,别看分多,里边包含13中java常用的公用类,绝对物超所值。

    自定义java常见工具类

    java开发中常用的工具类 比如 1:hibernate的配置 工具类复写 2:字符串加密 MD5加密 3:javabean到map的自动映射封装 4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:...

    懒惰:Android工具自己整理的常用的工具类

    #这个是我自己收集整理的一些常用的工具类##有好的工具类,欢迎提交PR 作者微博: ##增加常用库的README_LIB 内容说明 工具 描述 动画工具类 APP相关信息工具类 目录资源获取 加密 获取Bitmap和对Bitmap的操作 ...

    Java日期处理工具类DateUtils详解

    主要为大家详细介绍了Java日期处理工具类DateUtils的相关代码,包含日期和时间常用操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Global site tag (gtag.js) - Google Analytics