When the game gives you time remaining of N days, it's really between N*24h and (N+1)*24h. This is the same routine as the one giving you remaining time of every timer. If the remaining time is >= 48 hours, you only get a day granularity, i.e. "3 days, 23 hours, 59 minutes, 59 seconds" will still be printed as simply "3 days". If the remaining time is < 48h but still >= 24h, you get a hour granularity ("1 day, 23 hours, 59 minutes, 59 seconds" will bve printed as "1 day 23 hours"). Only once the timer gets below 24 hours you get precise timing - "0 days, 23 hours, 59 minutes, 59 seconds" will be printed as "23:59:59".
We can discuss whether or not it's a bug. I personally would prefer to see the hour granularity from the start; as it is, if you start something which takes exactly a week, the timer says "6 days" right from the start, and it's a bit confusing.
As for your math, you probably were banned for 4 days (96 hours). The math is still 10 hours off in that case, and I can't explain it (are you certain of the 00:30am banning time? Wasn't it 10:30am?), but as I said before, "96 hours" becomes "4 days", but "95 hours, 59 minutes, 59 seconds" is displayed as "3 days".