Ben Gordon
/
ELEC351_GroupA_alternate
temp
dateTime.hpp@0:2a4af0cb6e8d, 2018-12-06 (annotated)
- Committer:
- BenRJG
- Date:
- Thu Dec 06 15:38:09 2018 +0000
- Revision:
- 0:2a4af0cb6e8d
Imported Code from Kiel; Added button functionality; Added set DateTime Functionality
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
BenRJG | 0:2a4af0cb6e8d | 1 | #ifndef _dateTime_HPP |
BenRJG | 0:2a4af0cb6e8d | 2 | #define _dateTime_HPP |
BenRJG | 0:2a4af0cb6e8d | 3 | #include "mbed.h" |
BenRJG | 0:2a4af0cb6e8d | 4 | #include "General.hpp" |
BenRJG | 0:2a4af0cb6e8d | 5 | |
BenRJG | 0:2a4af0cb6e8d | 6 | class dateTime{ |
BenRJG | 0:2a4af0cb6e8d | 7 | public: |
BenRJG | 0:2a4af0cb6e8d | 8 | dateTime() |
BenRJG | 0:2a4af0cb6e8d | 9 | { |
BenRJG | 0:2a4af0cb6e8d | 10 | getSystemTime(); |
BenRJG | 0:2a4af0cb6e8d | 11 | time_t check = -1; |
BenRJG | 0:2a4af0cb6e8d | 12 | if(mktime(&_currentTime_struct) == check) |
BenRJG | 0:2a4af0cb6e8d | 13 | { |
BenRJG | 0:2a4af0cb6e8d | 14 | _currentTime_struct.tm_year = 70; |
BenRJG | 0:2a4af0cb6e8d | 15 | _currentTime_struct.tm_mon = 0; |
BenRJG | 0:2a4af0cb6e8d | 16 | _currentTime_struct.tm_mday = 1; |
BenRJG | 0:2a4af0cb6e8d | 17 | _currentTime_struct.tm_hour = 0; |
BenRJG | 0:2a4af0cb6e8d | 18 | _currentTime_struct.tm_min = 0; |
BenRJG | 0:2a4af0cb6e8d | 19 | _currentTime_struct.tm_sec = 0; |
BenRJG | 0:2a4af0cb6e8d | 20 | printf("THIS HAS BEEN RUN TOO\n\r"); |
BenRJG | 0:2a4af0cb6e8d | 21 | } |
BenRJG | 0:2a4af0cb6e8d | 22 | |
BenRJG | 0:2a4af0cb6e8d | 23 | printf("THIS HAS BEEN RUN %d\n\r",check); |
BenRJG | 0:2a4af0cb6e8d | 24 | } |
BenRJG | 0:2a4af0cb6e8d | 25 | |
BenRJG | 0:2a4af0cb6e8d | 26 | |
BenRJG | 0:2a4af0cb6e8d | 27 | void updateStruct() |
BenRJG | 0:2a4af0cb6e8d | 28 | { |
BenRJG | 0:2a4af0cb6e8d | 29 | time_t _newTime_time = mktime(&_newTime_struct); |
BenRJG | 0:2a4af0cb6e8d | 30 | _newTime_struct = *localtime(&_newTime_time); |
BenRJG | 0:2a4af0cb6e8d | 31 | if(_newTime_struct.tm_year == 0) |
BenRJG | 0:2a4af0cb6e8d | 32 | { |
BenRJG | 0:2a4af0cb6e8d | 33 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 34 | } |
BenRJG | 0:2a4af0cb6e8d | 35 | _currentTime_struct = _newTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 36 | } |
BenRJG | 0:2a4af0cb6e8d | 37 | |
BenRJG | 0:2a4af0cb6e8d | 38 | void addYear (INT_32 years =1){ |
BenRJG | 0:2a4af0cb6e8d | 39 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 40 | _newTime_struct.tm_year = _currentTime_struct.tm_year + years; |
BenRJG | 0:2a4af0cb6e8d | 41 | updateStruct(); |
BenRJG | 0:2a4af0cb6e8d | 42 | } |
BenRJG | 0:2a4af0cb6e8d | 43 | |
BenRJG | 0:2a4af0cb6e8d | 44 | void addMonth(S_BYTE months =1){ |
BenRJG | 0:2a4af0cb6e8d | 45 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 46 | _newTime_struct.tm_mon = _currentTime_struct.tm_mon + months; |
BenRJG | 0:2a4af0cb6e8d | 47 | updateStruct(); |
BenRJG | 0:2a4af0cb6e8d | 48 | } |
BenRJG | 0:2a4af0cb6e8d | 49 | void addDay (S_BYTE days =1){ |
BenRJG | 0:2a4af0cb6e8d | 50 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 51 | _newTime_struct.tm_mday = _currentTime_struct.tm_mday + days; |
BenRJG | 0:2a4af0cb6e8d | 52 | updateStruct(); |
BenRJG | 0:2a4af0cb6e8d | 53 | } |
BenRJG | 0:2a4af0cb6e8d | 54 | void addHour (S_BYTE hours =1){ |
BenRJG | 0:2a4af0cb6e8d | 55 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 56 | _newTime_struct.tm_hour = _currentTime_struct.tm_hour + hours; |
BenRJG | 0:2a4af0cb6e8d | 57 | updateStruct(); |
BenRJG | 0:2a4af0cb6e8d | 58 | } |
BenRJG | 0:2a4af0cb6e8d | 59 | void addMin (S_BYTE minutes=1){ |
BenRJG | 0:2a4af0cb6e8d | 60 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 61 | _newTime_struct.tm_min = _currentTime_struct.tm_min + minutes; |
BenRJG | 0:2a4af0cb6e8d | 62 | updateStruct(); |
BenRJG | 0:2a4af0cb6e8d | 63 | } |
BenRJG | 0:2a4af0cb6e8d | 64 | void addSec (S_BYTE seconds=1){ |
BenRJG | 0:2a4af0cb6e8d | 65 | _newTime_struct = _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 66 | _newTime_struct.tm_sec = _currentTime_struct.tm_sec + seconds; |
BenRJG | 0:2a4af0cb6e8d | 67 | updateStruct(); |
BenRJG | 0:2a4af0cb6e8d | 68 | } |
BenRJG | 0:2a4af0cb6e8d | 69 | |
BenRJG | 0:2a4af0cb6e8d | 70 | void setSystemTime(){set_time(mktime(&_currentTime_struct));} |
BenRJG | 0:2a4af0cb6e8d | 71 | char* getSystemTime(){time_t rawTime; time(&rawTime); _currentTime_struct = *localtime(&rawTime); return getTime();} |
BenRJG | 0:2a4af0cb6e8d | 72 | |
BenRJG | 0:2a4af0cb6e8d | 73 | char* getTime() {sprintf(dateTimeStr,"%02d/%02d/%4d %02d:%02d:%02d",getDay(),getMonth(),getYear(),getHour(),getMin(),getSec()); return dateTimeStr;} |
BenRJG | 0:2a4af0cb6e8d | 74 | //char* getTime() {updateTime(); sprintf(dateTimeStr, "Hello world %d:)",42);return dateTimeStr;}; |
BenRJG | 0:2a4af0cb6e8d | 75 | |
BenRJG | 0:2a4af0cb6e8d | 76 | signed INT_32 getYear() {return _currentTime_struct.tm_year + 1900;} |
BenRJG | 0:2a4af0cb6e8d | 77 | BYTE getMonth() {return _currentTime_struct.tm_mon + 1; } |
BenRJG | 0:2a4af0cb6e8d | 78 | BYTE getDay() {return _currentTime_struct.tm_mday; } |
BenRJG | 0:2a4af0cb6e8d | 79 | BYTE getHour() {return _currentTime_struct.tm_hour; } |
BenRJG | 0:2a4af0cb6e8d | 80 | BYTE getMin() {return _currentTime_struct.tm_min; } |
BenRJG | 0:2a4af0cb6e8d | 81 | BYTE getSec() {return _currentTime_struct.tm_sec; } |
BenRJG | 0:2a4af0cb6e8d | 82 | private: |
BenRJG | 0:2a4af0cb6e8d | 83 | //time_t _currentTime_time; |
BenRJG | 0:2a4af0cb6e8d | 84 | struct tm _currentTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 85 | struct tm _newTime_struct; |
BenRJG | 0:2a4af0cb6e8d | 86 | char dateTimeStr[20]; |
BenRJG | 0:2a4af0cb6e8d | 87 | //01/09/ |
BenRJG | 0:2a4af0cb6e8d | 88 | }; |
BenRJG | 0:2a4af0cb6e8d | 89 | #endif |
BenRJG | 0:2a4af0cb6e8d | 90 |