Code:
alias hourclock {
  if ($1 != ontimer) {
    .timerhourclock.one.off $time($calc($ctime + 1800 - ($ctime % 1800))) 1 0 hourclock ontimer
    .timerhourclock $time($calc($ctime + 1800 - ($ctime % 1800))) 0 1800 hourclock ontimer
  }
  else {
    msg #time It is now $asctime(dddd mmmm dd yyyy hh:nn:00 tt) -0500 UTC (EST).  (24 hour time is $asctime(HH:nn:00) $+ ). Go to #time for time.
  }
}


usage /hourclock
Then just wait till the hour & half hour mark roles around!


Since timers are restricted to accuracy of mircs internal proformance loop whcih can be effected internally by other mirc activities and externally by other windows activities, you cant get exactly perfect time but its close (most of the time). So i suggest the code above, just dont show the seconds your at at all, and set them to zero, a bit of a cheat some might say, well I say this, who are you trying to impress anyway, sicne your sending this "exact" time out to a irc server and then back to other irc clients, you can expect LAG anyway, so when you say its "exactly" 12:00:00 where you are, well they dont see that for 1.234242 seconds so it isnt anymore anyway is it!