4 ms·
Here's how it's implemented in Ruby: static int calc_wday(int year, int month, int day) { int a, y, m; int wday; a = (14 - month) / 12
by great_kraken 11y ago
Here's how it's implemented in Ruby:
static int
calc_wday(int year, int month, int day)
{
int a, y, m;
int wday;
a = (14 - month) / 12;
y = year + 4800 - a;
m = month + 12 * a - 3;
wday = day + (153*m+2)/5 + 365*y + y/4 - y/100 + y/400 + 2;
wday = wday % 7;
return wday;
}
Source: https://github.com/ruby/ruby/blob/5396d8a1ab52b4da4f5199109472fe7f8ea43085/time.c#L1260 https://github.com/ruby/ruby/blob/5396d8a1ab52b4da4f51991094...
- cuoverhere 11y agoperl! sub GetDayofWeek { my ($year, $month, $day) = @_; my @monthTable = (0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4); my @DayofWeek = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday); $year -= ($month < 3) ? 1: 0; return $DayofWeek[($year + $year / 4 - $year / 100 + $year / 400 + $monthTable[$month - 1] + $day) % 7]; }