I wish it would be so easy, but in fact you have to store mp_roundtime at newround event, because it can be change during the round by an admin or a plugin, so your way will give bad results.
You also have to deal with freezetime, so the round begins at roundstart event and not newround as you did.
Last thing is halflife_time need engine module.
get_systime return integer that make results less accurate.