java取出三个日期中的最大日期

private  String getMaxDate(String a,String b,String c) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date max = null;
String maxStr  = "";
Date dt1 = null;
Date dt2 = null;
Date dt3 = null;
if (StringUtils.isNotBlank(a)) {
dt1 = format.parse(a);
}
if (StringUtils.isNotBlank(b)) {
dt2 = format.parse(b);
}
if (StringUtils.isNotBlank(c)) {
dt3 = format.parse(c);
}
         
         List<Date> dates = new ArrayList<Date>();
         if (StringUtils.isNotBlank(a)) {
        dates.add(dt1);
         }
         if (StringUtils.isNotBlank(b)) {
        dates.add(dt2);
         }
         if (StringUtils.isNotBlank(c)) {
        dates.add(dt3);
         }
         
       
if (dates.size() == 1) {
max  = dates.get(0);
}
if (dates.size() == 2) {
if (dates.get(0).getTime() > dates.get(1).getTime()) {
max = dates.get(0);
}else {
max = dates.get(1);
}
}if (dates.size() == 3){
  if (dates.get(0).getTime() > dates.get(1).getTime()) {
             if (dates.get(0).getTime() < dates.get(2).getTime()) {
            max = dates.get(2);
            }else{
            max = dates.get(0);
               }
         } else if (dates.get(0).getTime() < dates.get(1).getTime()) {
             
               if (dates.get(1).getTime() < dates.get(2).getTime()) {
               max = dates.get(2);
                    }else{
                    max = dates.get(1);
                         } 
        }
}
if (max != null) {
maxStr = format.format(max);
}
return maxStr;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要获取List日期最大的值,可以使用Java的Collections.max()方法。该方法需要传入一个实现了Comparator接口的比较器对象,用于比较List的元素。比较器对象需要实现compare()方法,该方法用于比较两个元素的大小。在比较日期时,可以使用Date类的compareTo()方法进行比较。具体实现如下: ``` List<Date> dateList = new ArrayList<>(); // 添加日期到List Date maxDate = Collections.max(dateList, new Comparator<Date>() { @Override public int compare(Date o1, Date o2) { return o1.compareTo(o2); } }); System.out.println("List日期最大的值为:" + maxDate); ``` 上述代码,我们创建了一个Date类型的List,并向其添加了一些日期。然后,我们使用Collections.max()方法获取List日期最大的值。在比较器对象,我们实现了compare()方法,使用Date类的compareTo()方法进行比较。最后,我们输出了List日期最大的值。 ### 回答2: 要获取List日期最大的元素,可以按照以下步骤进行: 1. 首先,创建一个List对象,用于存储需要比较日期元素。 2. 遍历给定的List,将其日期元素依次添加到刚创建的List。 3. 使用Collections工具类的max()方法和比较器Comparator,对刚创建的List日期元素进行比较,找到最大日期元素。 4. 将得到的最大日期元素返回。 下面是一个示例代码: ```java import java.util.*; public class Main { public static void main(String[] args) { // 创建一个List对象,用于存储日期元素 List<Date> dateList = new ArrayList<>(); // 假设给定的List包含了一些日期元素 dateList.add(new Date(2021, 1, 1)); dateList.add(new Date(2022, 1, 1)); dateList.add(new Date(2020, 1, 1)); // 使用Collections工具类的max()方法和比较器Comparator找到最大日期元素 Date maxDate = Collections.max(dateList, Comparator.naturalOrder()); // 打印最大日期元素 System.out.println("最大日期: " + maxDate); } } ``` 在上面的示例,假设List存储的是Date类型的日期元素。根据具体情况,你也可以将代码的Date类替换为其他日期类(如LocalDate),以适应不同的需求。 ### 回答3: 要获取List最大日期,我们可以使用Java日期比较方法来实现。 首先,我们需要将List的元素转换为日期对象。假设List的元素都是字符串类型的日期,我们可以使用SimpleDateFormat来将字符串解析为日期对象。 然后,我们可以遍历List的元素,比较它们的大小,找到最大日期。 下面是示例代码: ``` import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class Main { public static void main(String[] args) throws ParseException { List<String> dateList = List.of("2021-01-05", "2021-01-01", "2021-01-03"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date maxDate = null; for (String dateString : dateList) { Date currentDate = dateFormat.parse(dateString); if (maxDate == null || currentDate.after(maxDate)) { maxDate = currentDate; } } System.out.println("List最大日期是:" + dateFormat.format(maxDate)); } } ``` 在上面的示例代码,我们假设List三个日期字符串,通过SimpleDateFormat将字符串解析为日期对象,并将第一个日期赋值给maxDate。 然后,我们遍历List剩余的日期,逐个与maxDate进行比较。如果当前日期大于maxDate,则将当前日期赋值给maxDate。 最后,我们打印出找到的最大日期。 注意:上述代码未进行异常处理,实际使用需要根据具体情况添加异常处理代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值