Reloj con botones para cambiar la hora a mano

#1
Hola

Estoy intentando hacer un reloj con botones para cambiar la hora.

El problema es a la hora de cambiar la fecha, que no permita meter fechas incorrectas como por ejemplo 31/02/2019.

Alguien sabe de alguna librería que tenga en cuenta esto y demás casos como los años bisiestos.

un saludo y gracias.
 
#2
¿Como lo estás haciendo?
Dependiendo de la tecnología será una u otra cosa.

Normalmente los RTC no dejan poner 29/2 más que en los años bisiestos etc
 
#4
Bueno, usando programación y un poco de lógica, puedes incrementar una fecha pero mirando el mes en que se encuentra.
Por ejem. en el mes de febrero, no puede ser mayor a 28(Salvo bisiesto) y hay meses de 30 y otros de 31.
Te doy una idea, cómo hacer para detectar un año bisiesto.
Debes dividir el valor numérico del año entre 4.
Si el resultado es un entero, pues ese año es bisiesto.
 
Última edición:
#5
Hola

Estoy usando esto para comprobar si la fecha es válida
Código:
bool Data::comprobarFecha()
{
    //Array que almacenara los dias que tiene cada mes (si el ano es bisiesto, sumaremos +1 al febrero)
    int dias_mes[] = { 31, 28, 31, 30,31, 30, 31, 31, 30, 31, 30, 31 };


    //Comprobar si la hora, minutos y segundos son aceptables
    if (minutes < 0 or minutes >= 60 or seconds < 0 or seconds >= 60 or hour24h < 0 or hour24h >= 24)
        return false;


    //Comprobar si el ano es bisiesto y anadir dia en febrero en caso afirmativo
    if ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
        dias_mes[1]++;

    //Comprobar que el mes sea valido
    if (month < 1 or month > 12)
        return false;

    //Comprobar que el dia sea valido
    
    if (day <= 0 or day > dias_mes[month-1])
        return false;

    //Si ha pasado todas estas condiciones, la fecha es valida
    return true;
}
Lo he agregado a la libreria RTC para que me sea mas cómodo. Aunque también se puede usar como función y pasarle los valores como parámetros

Aun así, si alguien sabe de alguna librería especializada en fechas suma, resta, añadir, validar... sigo interesado

gracias a todos y un saludo
 

Temas similares


Arriba