如何获取两个时间段中重合的部分

来源:互联网 发布:万得金融数据客户端 编辑:程序博客网 时间:2024/06/05 18:29

如何获取两个时间段中重合的部分

——如何获取两个数字区间重叠的部分
原理不说了,一看代码便知逻辑

package main.utill;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** *  * @author <a href= 'http://www.wlgdo.com'>com.wlgdo</a>[wangligang<a>wlgchun@163.com</a>] * @date 2017年5月14日 * @date 2017-05-14 21:54:18 */public class DateUtilz {    /*     * 需求描述: 现有两个日期段,格式是:yyyy-MM-dd HH:MM:ss,日期前后未定,系统需要判断出这两个日期的前后顺序, 取出这两个日期的重合日期     */    /**     *      * @author <a href="http://www.wlgdo.com">com.wlgdo</a>[<a href=     *         'wlgchun@163.com'>wangligang</a>]     * @date 2017-05-14 21:58:02     * @param args     *            void     */    public static void main(String[] args) {        getAlphalDate();    }    public static void getAlphalDate() {        try {            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            // 标准时间            Date bt = sdf.parse("2017-11-11 00:00:00");            Date ot = sdf.parse("2017-11-11 00:00:00");            // 目标时间            Date st = sdf.parse("2017-11-11 00:00:00");            Date ed = sdf.parse("2017-11-11 00:00:00");            long btlong = Math.min(bt.getTime(), ot.getTime());// 开始时间            long otlong = Math.max(bt.getTime(), ot.getTime());// 结束时间            long stlong = Math.min(st.getTime(), ed.getTime());// 开始时间            long edlong = Math.max(st.getTime(), ed.getTime());// 结束时间            // 具体算法如下            // 首先看是否有包含关系            if ((stlong >= btlong && stlong <= otlong) || (edlong >= btlong && edlong <= otlong)) {                // 一定有重叠部分                long sblong = stlong >= btlong ? stlong : btlong;                long eblong = otlong >= edlong ? edlong : otlong;                System.out.println("包含的开始时间是:" + sdf.format(sblong) + "-结束时间是:" + sdf.format(eblong));                return;            }            System.out.println("无重叠的时间段:{单身妹子看过来!}");        } catch (ParseException e) {            e.printStackTrace();        }    }}

有问题的同学可以直接Mail我或者评论区提问,随时跟大家沟通。

阅读全文
0 0
原创粉丝点击