pub const YearAndDay = struct year: Yearday: u9The number of days into the year (0 to 365)
pub fn calculateMonthDay(self: YearAndDay) MonthAndDay109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126pub const YearAndDay = struct {
year: Year,
/// The number of days into the year (0 to 365)
day: u9,
pub fn calculateMonthDay(self: YearAndDay) MonthAndDay {
var month: Month = .jan;
var days_left = self.day;
while (true) {
const days_in_month = getDaysInMonth(self.year, month);
if (days_left < days_in_month)
break;
days_left -= days_in_month;
month = @as(Month, @fromBackingInt(@intCast(@backingInt(month) + 1)));
}
return .{ .month = month, .day_index = @as(u5, @intCast(days_left)) };
}
}