gpt4 book ai didi

java - 如何在scala中检查闰年

转载 作者:行者123 更新时间:2023-11-30 10:46:08 24 4
gpt4 key购买 nike

我有一个字符串格式的日期。我想根据月份检查日期是否正确。例如,一月不应超过 31。

因此 32/1/2016 应该是无效日期。

def check(date:String,format:String)={
val splittedDate=date.split("/")
val res=(fullDay(2).toInt) <= LocalDate.of(fullDay(0).toInt,fullDay(1).toInt,fullDay(2).toInt).lengthOfMonth()
res
}

如果我们像 check("2015/4/5","yyyy/mm/dd") 这样调用,它会工作正常。但不要使用 check("2015/4/5","dd/yyyy/mm")

最佳答案

只需使用 java.time 来解析/创建日期。

如果您的日期无效,您将得到一个异常(exception)。例如:

scala> LocalDate.of(2016, 2, 31)
java.time.DateTimeException: Invalid date 'FEBRUARY 31'
at java.time.LocalDate.create(LocalDate.java:431)
at java.time.LocalDate.of(LocalDate.java:269)
... 33 elided

scala> LocalDate.of(2016, 2, 30)
java.time.DateTimeException: Invalid date 'FEBRUARY 30'
at java.time.LocalDate.create(LocalDate.java:431)
at java.time.LocalDate.of(LocalDate.java:269)
... 33 elided

scala> LocalDate.of(2016, 2, 29)
res15: java.time.LocalDate = 2016-02-29

scala> LocalDate.of(2015, 2, 29)
java.time.DateTimeException: Invalid date 'February 29' as '2015' is not a leap year
at java.time.LocalDate.create(LocalDate.java:429)
at java.time.LocalDate.of(LocalDate.java:269)
... 33 elided

关于java - 如何在scala中检查闰年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36713762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com