summaryrefslogtreecommitdiffstats
path: root/firmware/common
diff options
context:
space:
mode:
authorMoshe Piekarski <dev.rockbox@melachim.net>2021-05-05 12:52:19 -0400
committerSolomon Peachy <pizza@shaftnet.org>2021-05-12 10:52:03 +0000
commitb895fb66437655888386db82aa6434b0f5bfc0d6 (patch)
tree5a59015999db8a94740940a76b50a4dea0f2e556 /firmware/common
parent3f26fcf34001197ed267fa1ad549095aae49c88e (diff)
downloadrockbox-b895fb66437655888386db82aa6434b0f5bfc0d6.tar.gz
rockbox-b895fb66437655888386db82aa6434b0f5bfc0d6.zip
Add tm->yday to RTC ports missing it
Change-Id: I86882262bafb8d06f925aabb87ebd1b5dcb0cd53
Diffstat (limited to 'firmware/common')
-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)
if(m == 0 || m == 1) y--;
tm->tm_wday = (d + mo[m] + y + y/4 - y/100 + y/400) % 7;
}
+
+void set_day_of_year(struct tm *tm)
+{
+ int y=tm->tm_year+1900;
+ int d=tm->tm_mday;
+ int m=tm->tm_mon;
+ d+=m*30;
+ if( ( (m>1) && !(y%4) ) && ( (y%100) || !(y%400) ) )
+ d++;
+ if(m>6)
+ {
+ d+=4;
+ m-=7;
+ }
+ tm->tm_yday = d + ((m+1) /2);
+}
#endif /* CONFIG_RTC */