scala计算两个日期的最大值, 需考虑空值
时间: 2023-10-14 20:26:28 浏览: 96
以下是Scala代码示例,用于计算两个日期的最大值,并考虑空值情况:
```
import java.time.LocalDate
def maxDate(date1: Option[LocalDate], date2: Option[LocalDate]): Option[LocalDate] = {
(date1, date2) match {
case (Some(d1), Some(d2)) => Some(d1.max(d2))
case (Some(d), None) => Some(d)
case (None, Some(d)) => Some(d)
case _ => None
}
}
// Example usage:
val date1 = Some(LocalDate.of(2021, 1, 1))
val date2 = Some(LocalDate.of(2022, 1, 1))
val date3 = None
println(maxDate(date1, date2)) // Some(2022-01-01)
println(maxDate(date1, date3)) // Some(2021-01-01)
println(maxDate(date3, date3)) // None
```
在上述代码中,我们定义了一个`maxDate`函数,该函数接受两个`Option`类型的`LocalDate`参数,并返回它们的最大值。函数使用了模式匹配,以处理所有可能的情况。如果两个日期都存在,则返回它们的最大值。如果只有一个日期存在,则返回该日期。如果两个日期都不存在,则返回`None`。在上面的示例中,我们使用了三个不同的日期组合,以展示函数的不同行为。
阅读全文