Ben Gordon
/
ELEC351_GroupA_alternate
temp
Diff: dateTime.hpp
- Revision:
- 0:2a4af0cb6e8d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dateTime.hpp Thu Dec 06 15:38:09 2018 +0000 @@ -0,0 +1,90 @@ +#ifndef _dateTime_HPP +#define _dateTime_HPP + #include "mbed.h" + #include "General.hpp" + + class dateTime{ + public: + dateTime() + { + getSystemTime(); + time_t check = -1; + if(mktime(&_currentTime_struct) == check) + { + _currentTime_struct.tm_year = 70; + _currentTime_struct.tm_mon = 0; + _currentTime_struct.tm_mday = 1; + _currentTime_struct.tm_hour = 0; + _currentTime_struct.tm_min = 0; + _currentTime_struct.tm_sec = 0; + printf("THIS HAS BEEN RUN TOO\n\r"); + } + + printf("THIS HAS BEEN RUN %d\n\r",check); + } + + + void updateStruct() + { + time_t _newTime_time = mktime(&_newTime_struct); + _newTime_struct = *localtime(&_newTime_time); + if(_newTime_struct.tm_year == 0) + { + _newTime_struct = _currentTime_struct; + } + _currentTime_struct = _newTime_struct; + } + + void addYear (INT_32 years =1){ + _newTime_struct = _currentTime_struct; + _newTime_struct.tm_year = _currentTime_struct.tm_year + years; + updateStruct(); + } + + void addMonth(S_BYTE months =1){ + _newTime_struct = _currentTime_struct; + _newTime_struct.tm_mon = _currentTime_struct.tm_mon + months; + updateStruct(); + } + void addDay (S_BYTE days =1){ + _newTime_struct = _currentTime_struct; + _newTime_struct.tm_mday = _currentTime_struct.tm_mday + days; + updateStruct(); + } + void addHour (S_BYTE hours =1){ + _newTime_struct = _currentTime_struct; + _newTime_struct.tm_hour = _currentTime_struct.tm_hour + hours; + updateStruct(); + } + void addMin (S_BYTE minutes=1){ + _newTime_struct = _currentTime_struct; + _newTime_struct.tm_min = _currentTime_struct.tm_min + minutes; + updateStruct(); + } + void addSec (S_BYTE seconds=1){ + _newTime_struct = _currentTime_struct; + _newTime_struct.tm_sec = _currentTime_struct.tm_sec + seconds; + updateStruct(); + } + + void setSystemTime(){set_time(mktime(&_currentTime_struct));} + char* getSystemTime(){time_t rawTime; time(&rawTime); _currentTime_struct = *localtime(&rawTime); return getTime();} + + char* getTime() {sprintf(dateTimeStr,"%02d/%02d/%4d %02d:%02d:%02d",getDay(),getMonth(),getYear(),getHour(),getMin(),getSec()); return dateTimeStr;} + //char* getTime() {updateTime(); sprintf(dateTimeStr, "Hello world %d:)",42);return dateTimeStr;}; + + signed INT_32 getYear() {return _currentTime_struct.tm_year + 1900;} + BYTE getMonth() {return _currentTime_struct.tm_mon + 1; } + BYTE getDay() {return _currentTime_struct.tm_mday; } + BYTE getHour() {return _currentTime_struct.tm_hour; } + BYTE getMin() {return _currentTime_struct.tm_min; } + BYTE getSec() {return _currentTime_struct.tm_sec; } + private: + //time_t _currentTime_time; + struct tm _currentTime_struct; + struct tm _newTime_struct; + char dateTimeStr[20]; + //01/09/ + }; +#endif +