清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
class DateTimeUtil { static def timeLine = { def subMinute = delegate.upint(Calendar.instance.timeInMillis.minus(it.time), 1000 * 60) def oneHour = 60 def oneDay = oneHour * 24 def oneWeek = oneDay * 7 def oneMonth = oneDay * 30 def oneYear = oneDay * 365 def inhour = 0..<oneHour def inday = oneHour..<oneDay def inweek = oneDay..<oneWeek def inmonth = oneWeek..<oneMonth def inyear = oneMonth..<oneYear def outyear = oneYear..< Integer.MAX_VALUE switch (subMinute) { case inhour: "${subMinute}分钟前" break case inday: "${subMinute.intdiv(oneHour)}小时前" break case inweek: "${subMinute.intdiv(oneDay)}天前" break case inmonth: "${subMinute.intdiv(oneWeek)}周前" break case inyear: "${subMinute.intdiv(oneMonth)}月前" break case outyear: "${subMinute.intdiv(oneYear)}年前" break default: "E=mc2" } } static def upint = { A, B -> /** 向上取整算法 http://hi.baidu.com/chinakite/blog/item/3d02f01f339ac3f1e1fe0bc0.html UP(A/B) = int( (A+B-1)/B ) */ A>0?A.plus(B).minus(1).intdiv(B).toInteger():1 } static void main(args) { println Calendar.instance.timeInMillis println new Date().time println timeLine(new Date(108, 6, 1)) println timeLine(new Date(110, 6, 1)) println timeLine(new Date(110, 7, 1)) println timeLine(new Date(111, 3, 1)) println timeLine(new Date(111, 5, 1)) println timeLine(new Date(111, 5, 15)) println timeLine(new Date(111, 6, 1)) println timeLine(new Date(111, 6, 8)) println timeLine(new Date(111, 6, 8, 22, 22)) println timeLine(new Date(111, 6, 9, 15, 24)) println timeLine(new Date(111, 6, 9, 17, 24)) println timeLine(new Date(111, 6, 9, 19, 44)) } }