2013-10-01 6 views

ответ

3

В основном, как @Floris сказал:

val s = System.currentTimeMillis/1000 
val m = (s/60) % 60 
val h = (s/60/60) % 24 


val str = "%02d:%02d".format(h, m) 
// str = 22:40 

Теперь вы можете распечатать его, так же, как вы бы с регулярной строкой.

С 2.10 там лестницу является string interpolation feature, что позволяет писать такие вещи, как:

val foo = "bar" 
println(s"I'm $foo!") 
// I'm bar! 

Но я не думаю, что это очень читаемый (напоминает Perl):

val str = f"$h%02d:$m%02d" 
+2

Можно утверждать, что версия интерполяции строк читаема, но она, безусловно, имеет то преимущество, что ее тип проверяется. I.e., если 'h' или' m' не являются числовым типом (например, если они являются строками), код не будет компилироваться. –

0
// show elapsed time as hours:mins:seconds 
val t1 = System.currentTimeMillis/1000 

// ... run some code 
val t2 = System.currentTimeMillis/1000 
var elapsed_s = (t2 - t1) 

// for testing invent some time: 4 hours: 20 minutes: 10 seconds 
elapsed_s=4*60*60 + 20*60 + 10 

val residual_s = elapsed_s % 60 
val residual_m = (elapsed_s/60) % 60 

val elapsed_h = (elapsed_s/60/60) 

// display hours as absolute, minutes & seconds as residuals 
println("Elapsed time: " + "%02d:%02d:%02d".format(elapsed_h, residual_m, 
residual_s)) 
Смежные вопросы