String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)

简介: String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)

简介:当时要写一个状态判断,然后自己就写出了一个时间比较的方法。当结束时间大于今天返回已结束,否则就是实习中。

主要是利用的compareTo方法:

左边的参数(begDate)如果小于右边的参数(endData)返回-1;反之返回1;相等返回0

System.out.println("参数 : "+begDate.compareTo(endData));

代码:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
import java.time.temporal.Temporal;
import java.util.Date;
public class ShiJianBiJiao {
  public static void main(String[] aegs) throws ParseException {
//    ShiJianBiJiao shiJianBiJiao = new ShiJianBiJiao();
    /***
     * 第一个参数为开始时间,
     * 第二个为结束时间,
     * 当结束时间大于开始时间,
     * 并且结束时间大于今天
     * 返回"已结束"
     * **/
    //第一个参数为开始时间,第二个为结束时间。  当结束时间大于开始时间,并且结束时间大于今天返回"已结束"
    System.out.println(Timecompare("2022-08-01", "2023-09-05"));
  }
  public static  String Timecompare(String begTime,String endTime) throws ParseException {
    try {
      //注意format的格式要与日期String的格式相匹配
          DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          Date begDate  = sdf.parse(begTime);//开始时间
          Date endData = sdf.parse(endTime);//结束时间
          SimpleDateFormat dateFormat   = new SimpleDateFormat("YYYY-MM-dd");
          String aString = dateFormat.format(new Date());
          System.out.println("开始时间:    "+dateFormat.format(begDate));
          System.out.println("结束时间:    "+dateFormat.format(endData));
          System.out.println(LocalDate.now());
          //比较结束时间是否早于开始时间
          if (begDate.compareTo(endData) > 0) {
              return "开始时间大于结束时间";//0代表开始时间大于结束时间
          }
          /**
           * 左边的参数(begDate)如果小于右边的参数(endData)返回-1
           * 反之返回1
           * 相等返回0
           * 
           * */
          System.out.println("参数 : "+begDate.compareTo(endData));
          /**
           * 比较结束时间是否大于当前时间
           * (可以将aString 换成 LocalDate.now().toString())
           * 
           * */
         if(endData.compareTo(new Date()) < 0 && !endTime.equals(aString)){
         return "已结束";
      }
          return "进行中";
    } catch (Exception e) {
      StackTraceElement stackTraceElement =e.getStackTrace()[0];
      System.out.println("异常信息:"+e);
      return "请输入正确的时间格式:YYYY-MM-DD";
    }
    }
}

相关文章
|
1月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
1月前
|
存储 缓存 测试技术
CMake String函数:如何巧妙地在cmake中操作字符串
CMake String函数:如何巧妙地在cmake中操作字符串
100 0
|
25天前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
21 2
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
16天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
20天前
|
XML 编解码 数据格式
Python标准数据类型-String(字符串)
Python标准数据类型-String(字符串)
23 2
|
1月前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
18 6
|
1月前
|
SQL Java
使用java中的String类操作复杂的字符串
使用java中的String类操作复杂的字符串
9 0
|
1月前
String类及相应的字符串操作方法
String类及相应的字符串操作方法
69 1
|
1月前
|
安全 Python
Python系列(16)—— string类型转float类型
Python系列(16)—— string类型转float类型