Как разобраться в данном коде и понять его алгоритм?
Методом утенка
Вот вам аналог!
Тут думаю проще разобраться будет:function getDay($d, $m, $y) {
	$arrDays = array ("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
	
	$n = date('w', mktime(0, 0, 0, $m, $d, $y));
	return $arrDays[$n];
}

echo getDay(27, 06, 2016);