if(--ms == 0){
ms = 1000;// aquí le pones los ms desde donde quieres que empiece en este caso 1000ms
if(--Sg == 0)Sg=50; // aquí le pones los segundos desde donde quieres que empiece en este caso 50s (en total irian 51s)
Eso va a requerir que para mostrarlo sea necesario mostrar mS-1 y Sg-1 , ya que nunca tendrias el segundero/milisegundero en 0 y los milisegundos en 1000 implican 1Sg mas.
Para complicarla menos podemos usar:
- Variable sin signo:
if(--mS>999){
mS=999;
if(--Sg>59)Sg=59;
}
Aca aprovechamos el overflow... Por ejemplo para los segundos que seria una variable de 8 bits sin signo... al momento de que era 0, y se produce el decremento de unidad, ocurre un integer underflow, lo que termina con el valor de 255, por lo tanto la condicion sigue siendo la misma... Lo mismo ocurre con mS.
- Variable con signo:
if(--mS<0){
mS=999;
if(--Sg<0)Sg=59;
}