美文网首页
java时间运算

java时间运算

作者: c之气三段 | 来源:发表于2021-03-06 21:49 被阅读0次
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Time {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date startTime = ft.parse("1900-01-01 00:00:00");
        Date endTime = ft.parse("2050-01-01 00:00:00");
        System.out.println("请输入时间点(格式为yyyy-MM-dd hh:mm:ss):");
        Scanner scanner=new Scanner(System.in);
        String time= scanner.nextLine();
        Date input = ft.parse(time);
        boolean effectiveDate = isEffectiveDate(input, startTime, endTime);
        if (effectiveDate) {
            System.out.println("输入时间在范围内");
            nextTime(input,ft);
        } else {
            System.out.println("输入时间在不在范围内");
        }
    }
   //判断输入的时间是否在设置的时间内
    public static boolean isEffectiveDate(Date input, Date startTime, Date endTime) {
        if (input.getTime() == startTime.getTime()
                || input.getTime() == endTime.getTime()) {
            return true;
        }

        Calendar date = Calendar.getInstance();
        date.setTime(input);

        Calendar begin = Calendar.getInstance();
        begin.setTime(startTime);

        Calendar end = Calendar.getInstance();
        end.setTime(endTime);

        if (date.after(begin) && date.before(end)) {
            return true;
        } else {
            return false;
        }
    }
//输入时间3小时后的工作时间点,有休息时间就跳过
    public static void nextTime( Date input, SimpleDateFormat ft){
        Calendar that = Calendar.getInstance();
        int nextTime=3;
        int noonRest=2;
        that.setTime(input);
        int thatOur=Integer.parseInt(ft.format(that.getTime()).substring(11,13));//取出小时
        if((thatOur<=9&&thatOur>=8)||(thatOur>=14&&thatOur<=15)){that.add(Calendar.HOUR,nextTime);}//不跳过休息时间
        else if(thatOur<8)that.add(Calendar.HOUR,11-thatOur);//早上8点之前,直接跳到11点后
        else if(thatOur<12)that.add(Calendar.HOUR,nextTime+noonRest);//12点之前,且会跳过休息时间
        else if(thatOur<14)that.add(Calendar.HOUR,17-thatOur);//午间休息时间点,直接跳到17点后
        else that.add(Calendar.HOUR,24-thatOur+11);//晚上下班后,直接跳到第二天11点后
        System.out.println("增加3小时(跳过休息时间):"+ft.format(that.getTime()));
    }
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

//获取当前时间
public class Time {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(ft.format(new Date()));
    }


}

相关文章

  • java时间运算

  • python基础(四)----运算符

    一.算术运算符(基本同Java) 二.比较运算符(基本同Java) 三.赋值运算符(基本同Java) 四.位运算符...

  • JAVA位运算等运算符总结

    JAVA位运算等运算符总结 一、概述 运算符是一种“功能”符号,用以通知 Java 进行相关的运算。 Java 语...

  • Java的运算符

    Java有4大类运算符:算术运算、位运算、关系运算和逻辑运算。 运算符的优先级 模运算符 Java中,模运算符不止...

  • Kotlin——运算符和表达式

    与Java相同的运算符 Kotlin完全支持Java的运算符 Kotlin不支持Java的三目运算符——Kotli...

  • java基础知识

    title: java基础知识tags: [java基础知识] 位运算符 java种的运算符有 “&”,“|”,“...

  • Java基础知识3

    Java基础知识3 运算符 Java语言支持如下运算符 算术运算符:+,-,*,/,%模,取余数,++,-- 赋值...

  • Java判断与关系运算

    一、Java关系运算的种类 1、概述 Java还有提供了对两个量之间的关系进行比较的运算,称为关系运算。关系运算的...

  • 常用的运算符

    常用的运算符 @(Java学习) 一、何为运算符? 运算符是一种“功能”符号,用来通知Java进行相关的运算。Ja...

  • Java &、&&、|、||、^、<

    Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,...

网友评论

      本文标题:java时间运算

      本文链接:https://www.haomeiwen.com/subject/bistqltx.html