|
@@ -14,19 +14,55 @@ object DateUtils {
|
|
|
fm.parse(date).getTime / 1000
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取第一个不为空的字符串
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ def getNotNullStr(date: String*): String = date.filter(_ != null).head
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取最小的一个日期,如果有异常情况则反回第一个日期
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ def getMinDate(date: String*): String = {
|
|
|
+ val notNullDate = date.filter(_ != null)
|
|
|
+ if (notNullDate.map(_.length).distinct.length != 1) {
|
|
|
+ return notNullDate.head
|
|
|
+ }
|
|
|
+ var minDate: String = null
|
|
|
+ for (i <- 0 until notNullDate.length - 1) {
|
|
|
+ minDate = getMaxDateBy2(notNullDate(i), notNullDate(i + 1), true)
|
|
|
+ }
|
|
|
+ minDate
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 获取最大的一个日期,如果有异常情况则反回第一个日期
|
|
|
*
|
|
|
- * @param date1
|
|
|
- * @param date2
|
|
|
+ * @param date
|
|
|
*/
|
|
|
- def getMaxDate(date1: String, date2: String): String = {
|
|
|
+ def getMaxDate(date: String*): String = {
|
|
|
+ val notNullDate = date.filter(_ != null)
|
|
|
+ if (notNullDate.map(_.length).distinct.length != 1) {
|
|
|
+ return notNullDate.head
|
|
|
+ }
|
|
|
+ var maxDate: String = null
|
|
|
+ for (i <- 0 until notNullDate.length - 1) {
|
|
|
+ maxDate = getMaxDateBy2(notNullDate(i), notNullDate(i + 1))
|
|
|
+ }
|
|
|
+ maxDate
|
|
|
+ }
|
|
|
+
|
|
|
+ private def getMaxDateBy2(date1: String, date2: String, reverse: Boolean = false): String = {
|
|
|
try {
|
|
|
if (date1.length != date2.length) {
|
|
|
return date1
|
|
|
}
|
|
|
- date1.compareTo(date2) match {
|
|
|
+ val re = if (reverse) -1 else 1
|
|
|
+ date1.compareTo(date2) * re match {
|
|
|
case -1 => date2
|
|
|
case 1 => date1
|
|
|
case _ => date1
|
|
@@ -37,7 +73,7 @@ object DateUtils {
|
|
|
}
|
|
|
|
|
|
def main(args: Array[String]): Unit = {
|
|
|
- println(getMaxDate("2003-10-12 10:00:00", "2003-11-12 00:00:01"))
|
|
|
+ println(getNotNullStr(null,"2003-10-12 10:00:00", null, "2003-11-12 00:00:02"))
|
|
|
}
|
|
|
|
|
|
}
|