サイト内のある人の最後の訪問をユーザーに表示する機能をリリースするにはどうすればよいですか? 本 Grails in Action からいくつかのメソッドを書きましたが、正しく動作しません。
static String getNiceDate(Date date) {
def now = new Date()
def diff = Math.abs(now.time - date.time)
final long second = 1000
final long minute = second * 60
final long hour = minute * 60
final long day = hour * 24
def niceTime = ""
long calc = 0;
calc = Math.floor(diff/day)
if(calc) {
niceTime += calc + " day" + (calc > 1 ? "s " : " ")
diff %= day
}
calc = Math.floor(diff/hour)
if(calc){
niceTime += calc + " hour" + (calc > 1 ? "s " : " ")
diff %= hour
}
calc = Math.floor(diff/minute)
if(calc) {
niceTime =+ calc + " minute" + (calc > 1 ? "s " : " ")
diff %= minute
}
if(!niceTime) {
niceTime = "Right now"
} else {
niceTime += (date.time > now.time) ? "from now" : "ago"
}
return niceTime
}
このコードの何が問題になっていますか? 毎回 20 分前や 10 分前などを表示しますが、ユーザーの最後の訪問は昨日です。