¿Qué hora es en el reloj del ordenador?

Miguel Lafuente Blasco

// Se podrá hacer mucho más facil… supongo.

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

int main()

{
int n,l,h=0,m=0,s=0,a;
float i;
n=time(NULL); //A n le asignamos el número de segundos desde el 1/1/1970 a las 00:00
i=n*(1.0/86400);//A i le asignamos el número de días con parte decimal
l=i;//Hacemos que l sea el número de días enteros que han pasado desde el 1/1/1970 (l e i real)
i=i-l;/*Ahora i es un numero real menor que uno, en concreto la parte real de tiempo que ha pasado hoy expresada en dias*/
s=i*86400;//s son los segundos que llevamos hoy
/*Transformamos los segundos que llevamos hoy en horas minutos y segundos*/
while(s>=60)
{
m++;
s-=60;
}

while(m>=60)
{
h++;
m-=60;
}
h++; //Sumamos una hora para ajustarlo a GMT+1
if(h==24) h=0;//Al sumar una hora puede ser que h sea 24, entonces le asignamos 0
printf(“En GMT+1 son:\n”);
printf(“%d h %d min %d s”, h, m, s);
/*Aquí es donde esta la gracia, como n es muy grande, le costará más de un segundo realizar un bucle de
1 hasta n, en cada iteración, hacemos comparar el primer tiempo que teniamos con el actual, y si es diferente
sumamos un segundo, (que es la precision de time(NULL)). Ahora solo queda reconvertir la hora otra vez con los
mismos bucles*/

for(a=1;a<=n;a++){
if(n!=time(NULL)){
s++;
while(s>=60)
{
m++;
s-=60;
}

while(m>=60)
{
h++;
m -= 60;
}
if(h==24) h=0;//Otra vez, si llega el minuto 60, y eran las 23 horas, habrá que reiniciar las horas.
system(“cls”);//Limpiamos pantalla e imprimimos la nueva hora para que no se acumulen.
printf(“En GMT+1 son:\n”);
printf(“%d h %d min %d s”, h, m, s);
a=0;//Inicializamos a=0 para que el bucle for vuelva a empezar y así el reloj funcione indefinidamente
n=time(NULL);//A n, que era el tiempo absoluto en el anterior segundo, le asignamos el nuevo tiempo
}
}

return 0;
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a ¿Qué hora es en el reloj del ordenador?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s