文档章节

First Blood

不知不觉的路已走到这
 不知不觉的路已走到这
发布于 2017/04/07 17:40
字数 506
阅读 15
收藏 0
点赞 0
评论 0

需求:前台不传时间 然后自己根据现在时间 去做整月的查询 ,或者···月中时间 然后自己做整月时间给持久层  就酱紫 一个简单的时间util  复制粘贴 做个记录

public class 我是工具类 {
    public static final String START_TIME = "0"; // 开始时间
    public static final String END_TIME = "1"; // 结束时间


    /**
     * 今日
     *
     * @return
     */
    public static Calendar today() {
        return Calendar.getInstance();
    }

    /**
     * 本周的第一天 <br/>
     * 中国的一周第一天
     *
     * @return
     */
    public static Calendar firstDayOfWeek() {
        Calendar calendar = today();
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        return calendar;
    }

    /**
     * 本周的最后一天 <br/>
     * 本周周日
     *
     * @return
     */
    public static Calendar lastDayOfWeek() {
        Calendar calendar = today();
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); // 上周日[国外为 本周周日]
        calendar.add(Calendar.WEEK_OF_YEAR, 1); // 加一周,为中国的周日
        return calendar;
    }

    /**
     * 月初
     *
     * @return
     */
    public static Calendar firstDayOfMonth() {
        Calendar calendar = today();
        return firstDayOfMonth(calendar);
    }

    /**
     * 月初
     *
     * @param times
     * @return
     */
    public static Calendar firstDayOfMonth(long times) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(times);
        return firstDayOfMonth(calendar);
    }

    /**
     * 月初
     *
     * @param calendar
     * @return
     */
    public static Calendar firstDayOfMonth(Calendar calendar) {
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        return calendar;
    }

    /**
     * 月末
     *
     * @return
     */
    public static Calendar lastDayOfMonth() {
        Calendar calendar = today();
        return lastDayOfMonth(calendar);
    }

    /**
     * 月末
     *
     * @param calendar
     * @return
     */
    public static Calendar lastDayOfMonth(Calendar calendar) {
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        return calendar;
    }

    /**
     * 月末
     *
     * @param times
     * @return
     */
    public static Calendar lastDayOfMonth(long times) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(times);
        return lastDayOfMonth(calendar);
    }

    /**
     * 年初
     *
     * @return
     */
    public static Calendar firstDayOfYear() {
        Calendar calendar = today();
        calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMinimum(Calendar.DAY_OF_YEAR));
        return calendar;
    }

    /**
     * 年末
     *
     * @return
     */
    public static Calendar lastDayOfYear() {
        Calendar calendar = today();
        calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
        return calendar;
    }

    /**
     * 设置目标时间的时分秒[毫秒]
     *
     * @param calendar
     * @param hour
     * @param minute
     * @param second
     * @param milliSecond
     * @return
     */
    public static Calendar buildTime(Calendar calendar, int hour, int minute, int second, int milliSecond) {
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        calendar.set(Calendar.MILLISECOND, milliSecond);
        return calendar;
    }

    /**
     * 设置目标时间的时分秒[毫秒] <br/>
     * <pre>
     *     开始时间 : YYYY-MM-dd 00:00:00
     *     结束时间 : YYYY-MM-dd 23:59:59
     * </pre>
     *
     * @param calendar
     * @param type     0 开始时间 1结束时间
     * @return
     */
    public static Calendar buildTime(Calendar calendar, String type) {
        switch (type) {
            case START_TIME:
                return buildTime(calendar, 0, 0, 0, 0);
            case END_TIME:
                return buildTime(calendar, 23, 59, 59, 999);
            default:
                break;
        }
        return calendar;
    }

实现的话

if (我是时间 != null) {
    我是开始时间(request.getScoreTime());
    我是结束时间(CalendarTools.buildTime(CalendarTools.lastDayOfMonth(request.getScoreTime().getTime()), CalendarTools.END_TIME).getTime());
} else {
    我是开始时间(CalendarTools.buildTime(CalendarTools.firstDayOfMonth(), CalendarTools.START_TIME).getTime());
    我是结束时间(CalendarTools.buildTime(CalendarTools.lastDayOfMonth(), CalendarTools.END_TIME).getTime());
}

© 著作权归作者所有

共有 人打赏支持
不知不觉的路已走到这
粉丝 1
博文 8
码字总数 2501
作品 0
杭州
程序员

暂无文章

设计模式-工厂模式

工厂模式 解释 根据参数返回对应的实例使用该实例进行操作 BeanFactory Object obj = BeanFactory.getBean(String name);getBean方法中根据name参数进行处理在程序外部使用obj实例增加n...

郭里奥
7分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
32分钟前
0
0
RestTemplate HttpMessageConverter

RestTemplate 微信接口 text/plain HttpMessageConverter

微小宝
32分钟前
0
0
mysql视图/存储过程/函数/事件/触发器

--语法参考:https://dev.mysql.com/doc/ (当前用的是5.6) https://dev.mysql.com/doc/refman/5.6/en/sql-syntax-data-manipulation.html --视图 CREATE VIEW test.v AS SELECT * FROM t;......

坦途abc
34分钟前
0
0
MySQL参数优化案例

环境介绍 硬件配置 cpu核心数 内存大小 磁盘空间 16核 256G 3T 软件环境 操作系统版本 mysql版本 表数目 单表行数 centos-7.4 mysql-5.7.22 128张表 2kw行 优化层级与指导思想 优化层级 MySQ...

小致dad
43分钟前
0
0
【HAVENT原创】NodeJS 短网址开发(调用第三方接口)

最近想弄个短网址的示例站点,在网上搜集了一些代码,都需要数据库支持,所以只能自己写个简单的不需要数据库支持的(PS:那就只能借调第三方的接口了)。 index.js 启动文件 'use strict';...

HAVENT
44分钟前
0
0
219. Contains Duplicate II - LeetCode

Question 219. Contains Duplicate II Solution 题目大意:数组中两个相同元素的坐标之差小于给定的k,返回true,否则返回false 思路:用一个map记录每个数的坐标,如果数相同,如果坐标差小...

yysue
52分钟前
0
0
Android 自动生成java bean

背景: 想搞一个自动生成java bean 的方案。 首先想到的是注解自动生成代码的方法。但是看了看注解相关的东西,发现对已有的类,增加方法,目前没有找到办法。 继续goole :发现了这里。 ht...

Carlyle_Lee
56分钟前
0
0
图片加载相关

本文记载有关于 图片懒加载、图片模糊加载等与图片加载相关的知识,后续会更新 图片懒加载 利用img标签src属性,在该图片快到达客户可视范围时,给img添加src属性(添加后,会发起请求下载图...

littleFaye
58分钟前
0
0
面试宝典-怎么实现分布式锁

1. 基于数据库表做乐观锁,用于分布式锁。 2. 使用memcached的add()方法,用于分布式锁。 3. 使用redis的setnx()、expire()方法,用于分布式锁。 设置过期时间防止死锁,但是如果在setnx和e...

suyain
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部