summaryrefslogtreecommitdiff
path: root/firmware/common/timefuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/common/timefuncs.c')
-rw-r--r--firmware/common/timefuncs.c16
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
139void 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