diff options
Diffstat (limited to 'firmware/common/timefuncs.c')
-rw-r--r-- | firmware/common/timefuncs.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/firmware/common/timefuncs.c b/firmware/common/timefuncs.c index 50addad27a..108431753a 100644 --- a/firmware/common/timefuncs.c +++ b/firmware/common/timefuncs.c | |||
@@ -135,5 +135,21 @@ void set_day_of_week(struct tm *tm) | |||
135 | if(m == 0 || m == 1) y--; | 135 | if(m == 0 || m == 1) y--; |
136 | tm->tm_wday = (d + mo[m] + y + y/4 - y/100 + y/400) % 7; | 136 | tm->tm_wday = (d + mo[m] + y + y/4 - y/100 + y/400) % 7; |
137 | } | 137 | } |
138 | |||
139 | void set_day_of_year(struct tm *tm) | ||
140 | { | ||
141 | int y=tm->tm_year+1900; | ||
142 | int d=tm->tm_mday; | ||
143 | int m=tm->tm_mon; | ||
144 | d+=m*30; | ||
145 | if( ( (m>1) && !(y%4) ) && ( (y%100) || !(y%400) ) ) | ||
146 | d++; | ||
147 | if(m>6) | ||
148 | { | ||
149 | d+=4; | ||
150 | m-=7; | ||
151 | } | ||
152 | tm->tm_yday = d + ((m+1) /2); | ||
153 | } | ||
138 | #endif /* CONFIG_RTC */ | 154 | #endif /* CONFIG_RTC */ |
139 | 155 | ||