Los principiantes piden consejo sobre dos preguntas sencillas sobre programación en lenguaje C
[Respuesta]
1. Utilice la función de tiempo propia del lenguaje C
difftime(time_t time1, time_t time0) / 86400
La desventaja de esto es que el tipo time_t aquí solo admite hasta 2037
2. Defina sus propias funciones
El método utilizado por el cartel no se usa comúnmente en la programación real y los cambios son relativamente grandes.
El siguiente método calcula directamente el número de días desde dos fechas hasta el primer año de la era cristiana
y luego los resta. Este es un algoritmo utilizado en la programación real. Ha sido refinado por muchos programadores. Ampliamente utilizado
#include
#define LEAP(y) (y%(y%100?4:400)==0. ) /* AD y Si el año es bisiesto*/
long totaldays(int año,int mes,int día)/*El número total de días en el año AD*/
{ int días[]={0,31 ,28,31,30,31,30,31,31,30,31,30,31}
int c=día,m ,y=año-1;
días[2]=28+LEAP(año
for(m=1;m return c+y /4-y/10y/40y*365L } void main() { int y,m,d; long t1,t2; printf("fecha 1: "); %*c%d",&y,&m,&d) ; t1=totaldays(y,m,d); printf("fecha 2: "); p> scanf("%d%*c %d%*c%d",&y,&m,&d t2=totaldays(y,m,d); > printf("días totales: %ld\ n",t2-t1 } Estos deberían ser todos los métodos de implementación No es necesario simplificar el método del cartel original En particular, no es necesario buscar códigos cortos deliberadamente Debes saber que si el código es corto, la legibilidad será pobre Solo cuando los dos están bien coordinados se puede llamar un buen programa^ ^ Conozco el silencio de la lluvia