Versión sin post-procesado del software del VmRideR

Dependencies:   mbed

Revision:
0:3d456b8ce449
diff -r 000000000000 -r 3d456b8ce449 FechaHora.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FechaHora.cpp	Mon Jun 15 15:34:27 2015 +0000
@@ -0,0 +1,174 @@
+#include "FechaHora.h"
+
+void FechaHora::update(){
+    time(&rawtime);
+    timeinfo = localtime(&rawtime);
+}
+
+void FechaHora::updateRawTime(){   // Actualiza el número de segundos desde el 1 de enero de 1970
+    rawtime = mktime(timeinfo);
+    set_time(rawtime);
+}
+
+// Funciones que devuelven la fecha y hora como enteros
+int FechaHora::getNsecond(){
+    return timeinfo->tm_sec;
+}
+
+int FechaHora::getNminute(){
+    return timeinfo->tm_min;
+}
+
+int FechaHora::getNhour(){
+    return timeinfo->tm_hour;
+}
+
+int FechaHora::getNday(){
+    return timeinfo->tm_mday;
+}
+
+int FechaHora::getNmonth(){
+    return timeinfo->tm_mon + 1;
+}
+
+int FechaHora::getNyear(){     // años desde 1900
+    return timeinfo->tm_year;
+}
+
+// Funciones que configuran la fecha y hora
+void FechaHora::setNsecond(int n){
+    timeinfo->tm_sec = n;
+}
+
+void FechaHora::setNminute(int n){
+    timeinfo->tm_min = n;
+}
+
+void FechaHora::setNhour(int n){
+    timeinfo->tm_hour = n;
+}
+
+void FechaHora::setNday(int n){
+    timeinfo->tm_mday = n;
+}
+
+void FechaHora::setNmonth(int n){
+    timeinfo->tm_mon = (n - 1);
+}
+
+void FechaHora::setNyear(int n){      // años desde 1900
+    timeinfo->tm_year = n;
+}
+
+char *FechaHora::getFechaHora(){
+    char aux[5];
+    memset(fechaHoraFormat,'\0',strlen(fechaHoraFormat));
+    
+    getDay(aux);    
+    strncpy(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, "-");
+    
+    getMonth(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, "-");
+    
+    getYear(aux);
+    strncat(fechaHoraFormat, aux, 4);
+    
+    strcat(fechaHoraFormat, " ");
+    
+    getHour(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, ";");
+    
+    getMinute(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, ";");
+    
+    getSecond(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    return fechaHoraFormat;
+}
+
+char *FechaHora::getFecha(){
+    char aux[5];
+    memset(fechaHoraFormat,'\0',strlen(fechaHoraFormat));
+    
+    getDay(aux);    
+    strncpy(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, "-");
+    
+    getMonth(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, "-");
+    
+    getYear(aux);
+    strncat(fechaHoraFormat, aux, 4);
+    
+    return fechaHoraFormat;
+}
+
+char *FechaHora::getHora(){
+    char aux[5];
+    memset(fechaHoraFormat,'\0',strlen(fechaHoraFormat));
+    
+    getHour(aux);
+    strncpy(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, ";");
+    
+    getMinute(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    strcat(fechaHoraFormat, ";");
+    
+    getSecond(aux);
+    strncat(fechaHoraFormat, aux, 2);
+    
+    return fechaHoraFormat;
+}
+
+
+// Funciones que devuelven la hora
+void FechaHora::getSecond(char buff[]){
+    intTo2char(timeinfo->tm_sec, buff);    
+}
+void FechaHora::getMinute(char buff[]){
+    intTo2char(timeinfo->tm_min, buff); 
+}
+void FechaHora::getHour(char buff[]){
+    intTo2char(timeinfo->tm_hour, buff); 
+}
+
+// Funciones que devuelven la fecha
+void FechaHora::getDay(char buff[]){
+    intTo2char(timeinfo->tm_mday, buff); 
+}
+void FechaHora::getMonth(char buff[]){
+    intTo2char(timeinfo->tm_mon+1, buff); 
+}
+void FechaHora::getYear(char buff[]){
+    int year = 1900 + timeinfo->tm_year;
+    intTo4char(year, buff);
+}
+
+// La siguiente función devuelve los dos caracteres correspondientes a las dos cifras de un número entre 0 y 99 pasado como argumento (sin signo)
+void FechaHora::intTo2char(int value, char buff[]){
+    buff[0] = value/10 + '0';   // Decenas
+    buff[1] = value - ((int)(value/10))*10 + '0';   // unidades
+}
+
+// La siguiente función devuelve los dos caracteres correspondientes a las dos cifras de un número entre 0 y 99 pasado como argumento (sin signo)
+void FechaHora::intTo4char(int value, char buff[]){
+    buff[0] = value/1000 + '0';   // Millares
+    buff[1] = ((int)(value - ((int)(value/1000))*1000))/100 + '0';   // Centenas
+    buff[2] = (value - (buff[0] - '0')*1000 - (buff[1] - '0')*100)/10 + '0';
+    buff[3] = (value - (buff[0] - '0')*1000 - (buff[1] - '0')*100 - (buff[2] - '0')*10) + '0';    
+}
\ No newline at end of file