下面是代码实现,返回结果如样式所示。
def getCalendar(day: Date): Calendar = {
val c = Calendar.getInstance
c.clear
if (day != null) c.setTime(day)
c
}
def getTongBiDate(date1: String): (String, String, String, String, String) = {
val dft = new SimpleDateFormat("yyyyMMdd")
val dft1 = new SimpleDateFormat("dd")
val dft2 = new SimpleDateFormat("yyyyMM")
val c = getCalendar(dft.parse(date1))
c.set(Calendar.HOUR_OF_DAY, -24)
val date = dft.format(c.getTime)
// 今天日期
val day: String = dft1.format(c.getTime)
val today: Int = day.toInt
val ret3 = dft2.format(c.getTime)
// 昨天
c.set(Calendar.HOUR_OF_DAY, -24)
val ret4 = dft.format(c.getTime)
c.set(Calendar.HOUR_OF_DAY, 24)
// 上一个月
c.add(Calendar.MONTH, -1)
val ret1 = dft2.format(c.getTime)
// 最大天数
val maxDay: Int = c.getActualMaximum(Calendar.DAY_OF_MONTH)
var ret: String = null
if (today <= maxDay) {
ret = ret1 + day
} else {
c.set(Calendar.DAY_OF_MONTH, maxDay)
ret = dft.format(c.getTime)
}
// 今天,今天月份,昨天,同比月份,同比天
(date, ret3, ret4, ret1, ret)
// ("20210105", "202101", "20210104", "202012", "20201205")
}
对于函数返回结果Tuple5[String],可以调用直接按下表获取:
getTongBiDate("20210106")._1
结果为:
20210105