java 判断时间范围

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zimiao552147572/article/details/89947450

注意:这个实现奇怪的是 "12:00:00" 也判断为 "00:00:00"
例子:System.out.println(isInTime("00:00:00-00:01:00", "12:00:00"));

package com.nginxlog;

import java.io.RandomAccessFile;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class NowString {
 
    public static void main(String[] args) {
//        System.out.println((new java.text.SimpleDateFormat("hh:mm:ss")).format(new Date()));
//        System.out.println(isInTime("10:00:00-10:23:00", (new java.text.SimpleDateFormat("hh:mm:ss")).format(new Date())));
//        System.out.println();
//        System.out.println(isInTime("23:00:00-24:00:00", "24:00:00"));
//        System.out.println(isInTime("23:00:00-00:00:00", "23:00:00"));
//        System.out.println(isInTime("23:00:00-00:00:00", "00:00:00"));
//        System.out.println(isInTime("23:00:00-00:00:00", "00:00:05"));
//        System.out.println(isInTime("00:00:00-00:00:60", "00:00:59"));
//        System.out.println(isInTime("00:00:00-00:01:00", "12:00:00"));
//        System.out.println(isInTime("23:24:00-23:24:36", "23:24:11"));
//        System.out.println(isInTime("00:00:00-00:01:00", "00:00:02"));
//        System.out.println(isInTime("00:00:00-00:01:00", "00:01:00"));

          System.out.println((new java.text.SimpleDateFormat("HH:mm:ss")).format(new Date()));
          System.out.println(isInTime("16:08:48-16:27:40", (new java.text.SimpleDateFormat("HH:mm:ss")).format(new Date())));
          System.out.println();


        System.out.println(isInTime("00:00:00-00:05:00","12:44:05" )); //true
        System.out.println(isInTime("00:00:00-00:05:00","00:00:02" ));//true
        System.out.println(isInTime("00:00:00-00:05:00","24:00:00" ));//false
        System.out.println(isInTime("00:00:00-00:05:00","00:05:00" ));//false
        System.out.println(isInTime("00:00:00-00:05:00","00:05:01" ));//false
        System.out.println(isInTime("00:00:00-00:05:00","00:04:59" ));//true
        System.out.println(isInTime("00:00:00-00:05:00","23:59:59" ));//false
        System.out.println(isInTime("00:00:00-00:05:00","00:02:00" ));//true
        System.out.println(isInTime("00:00:00-00:05:00","02:00:00" ));//false

        String s = "12:44:05";
        String[] split = s.split(":");
        if("12".equals(split[0]))
        {
            System.out.println(split[0]);
        }

//        System.out.println("'---------------'");
//        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");//设置日期格式
//        String format1 = df.format(new Date());
//        System.out.println(format1);
//        System.out.println("'---------------'");
//
//        Calendar calendar= Calendar.getInstance();
//        SimpleDateFormat dateFormat= new SimpleDateFormat("HH:mm:ss");
//        String format2 = dateFormat.format(calendar.getTime());
//        System.out.println(format2);

    }



    /**
     * 判断某一时间是否在一个区间内
     *
     * 注意:这个实现奇怪的是 "12:00:00" 也判断为 "00:00:00",例子 System.out.println(isInTime("00:00:00-00:01:00", "12:00:00"));
     * @param sourceTime
     *            时间区间,半闭合,如[10:00-20:00)
     * @param curTime
     *            需要判断的时间 如10:00
     * @return
     * @throws IllegalArgumentException
     */
    public static boolean isInTime(String sourceTime, String curTime)
    {
        if (sourceTime == null || !sourceTime.contains("-") || !sourceTime.contains(":")) {
            throw new IllegalArgumentException("Illegal Argument arg:" + sourceTime);
        }
        if (curTime == null || !curTime.contains(":")) {
            throw new IllegalArgumentException("Illegal Argument arg:" + curTime);
        }
        String[] args = sourceTime.split("-");
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
        try {
            long now = sdf.parse(curTime).getTime();
            long start = sdf.parse(args[0]).getTime();
            long end = sdf.parse(args[1]).getTime();
            if (args[1].equals("00:00:00")) {
                args[1] = "24:00:00";
            }

            if (end < start) {
                if (now >= end && now < start) {
                    return false;
                } else {
                    return true;
                }
            }
            else {
                if (now >= start && now < end) {
                    return true;
                } else {
                    return false;
                }
            }
        } catch (ParseException e) {
            e.printStackTrace();
            throw new IllegalArgumentException("Illegal Argument arg:" + sourceTime);
        }
    }

}

猜你喜欢

转载自blog.csdn.net/zimiao552147572/article/details/89947450
今日推荐