Función sencilla para fecha y hora.

Hola

Os comparto esta sencilla función para obtener la fecha y la hora de un Tiny RTC como un String.

/*
FUNCION PARA OBTENER LA FECHA EN MODO TEXTO
Devuelve: DD-MM-AAAA HH:MM:SS
*/
String dimeFecha(){
  
	char fecha[19];
	DateTime now = RTC.now(); //Obtener fecha y hora actual.

	int dia = now.day();
	int mes = now.month();
	int anio = now.year();
	int hora = now.hour();
	int minuto = now.minute();
	int segundo = now.second();

	sprintf( fecha, "%.2d.%.2d.%.4d %.2d:%.2d:%.2d", dia, mes, anio, hora, minuto, segundo);
	return String( fecha );
}

Espero os sirva para ahorrar código.

Saludos.

Guardado, gracias

Jopapa

Hola jopapa,

Me alegro que te sirva.

Saludos.

Feliz 2014.

Hola, la plantilla DD-MM-AAAA HH:MM:SS tiene 19 caracteres, char fecha[] debe tener uno más para el carácter null. Si no, al hacer sprintf() estás machacando un carácter en la zona de memoria vecina: a veces puede que funcione, pero muchas veces un error así te puede arruinar un programa.

Hola Curro92,

Gracias por el aviso. Se me había pasado.

Saludos.

Código arreglado:

/*
FUNCION PARA OBTENER LA FECHA EN MODO TEXTO
Devuelve: DD-MM-AAAA HH:MM:SS
*/
String dimeFecha(){
  
	char fecha[20];
	DateTime now = RTC.now(); //Obtener fecha y hora actual.

	int dia = now.day();
	int mes = now.month();
	int anio = now.year();
	int hora = now.hour();
	int minuto = now.minute();
	int segundo = now.second();

	sprintf( fecha, "%.2d.%.2d.%.4d %.2d:%.2d:%.2d", dia, mes, anio, hora, minuto, segundo);
	return String( fecha );
}

Publicada en mi blog:

http://aitormartin-apuntes.blogspot.com.es/2014/01/arduino-funcion-para-obtener-la-fecha.html

Muchas gracias.

Muchas gracias, pacooca.

1 Like