TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: bycebamar en 14 de Febrero de 2011, 14:49:24
-
Hola Foreros!
Recurro a Uds para consulta como implementan en sus programas el uso de la funcion void ds1307_set_date_time(byte day, byte mth, byte year, byte dow, byte hr, byte min, byte sec).
Es decir, como verifican que por ejemplo no se ingrese como dia válido 31 a Febrero (que tiene solo 28)?
Muchas gracias y un saludo
-
- Si estamos en el mes 2 (febrero) y no es un año bisiesto, entonces si dia>28 ----> dia=1
- Si estamos en el mes 2 (febrero) y es un año bisiesto, entonces si dia>29 ----> dia=1
-
Gracias por tu respuesta... Pero Como se si es año bisiesto... no? :D :D . Esa es la idea del hilo... La idea seria aprovechar de alguna manera la base de datos que tiene adentro el reloj (hasta el año 2100)
Para que entiendas mejor mi pregunta te planteo algunas cuestiones. Por ejemplo:
El reloj esta en 31/01/2011 ... Yo me pisiciono con el cursor sobre el numero 1 del mes y lo paso a 2 -> Se produce un error!!!!
-
Para averiguar si un año es bisiesto lo unico que tienes que hacer es poner en el google "año bisiesto" y te saldra el algoritmo para programar. A partir de ahí sacas la funcion:
void ano_bisiesto(int ano)
{
if ((ano%400)==0)
bisiesto=1;
else if ((ano%100)==0)
bisiesto=0;
else if ((ano%4)==0)
bisiesto=1;
else
bisiesto=0;
}