Programación de marca de tiempo
# incluir & lttime.h & gt
void main()
{
hora _ t time _ last
time_last = time(empty);
printf("%ld\n ", time _last //Obtiene el número de segundos desde 1970 hasta ahora); .
Unsigned long v;
Y (1) // es fácil de probar y se puede ingresar en cualquier momento.
{
scanf("%ld ", & amp五);
v = v+ 60 * 60 * 8 //Estamos ubicados en el Este; Octavo Distrito.
int d = v/(60 * 60 * 24)+1; //Obtiene el número de días entre 1970 65438+1 de octubre y los segundos ingresados.
int n =(d+671)/1461; //¿Cuántos 29 de febrero han pasado entremedio?
int año =(d-n)/365+1970; //Obtener el año
If ((d-n)%365 == 0)
{< / p>
Año=Año-1;
}
int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 30 , 31, 30, 31 }; //Definir las fechas en la tabla de meses
if((año % 400 == 0)| |(año % 4 == 0&& año %100 ! =0)) //Juez año bisiesto
{
m[2]= 29;
}
Otros
p>{
m[2]= 28;
}
int I
int da = d; - (d-n)/365 * 365-n; // Resta anteayer para obtener el día del año.
int mes, día;
for(I = 0;i<12;i++)
{
if(da & gt; m[i])
{
da = da-m[I]; //Dejemos que el número de días reste el número de días de cada mes.
}
Si (da == 0)
{
mes = I+1;
día = m[I+1];
}
if(da <= m[I+1]&&大!= 0) //si Si el número de días es menor o igual al mes, puede determinar qué día es.
{
Mes = I+1;
Día = da
Pausa; // Salir del bucle después de la confirmación.
}
}
printf("%d-%d-%d\n ", año, mes, día
<); p>int horas, minutos, segundos;Horas = v %(3600 * 24)/3600;
Minutos = v % 3600/60;
Segundos = v % 60
printf("%d:%d:%d\n ", horas, minutos, segundos);
}
}