簡體   English   中英

如何在scala中檢查閏年

[英]how to check leap year in scala

我有一個字符串格式的日期。 我想根據月份檢查日期是否正確。 例如,一月不應超過 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來解析/創建日期。

如果您的日期無效,您將得到一個例外。 例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM