algorytm.org

Implementacja w Ruby



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Wyznaczanie dnia tygodnia - Implementacja w Ruby
Ocena użytkownikóww: *****  / 0
SłabyŚwietny
Nadesłany przez Nikodem Solarz, 04 lutego 2013 12:28
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

dzien_tyg_1_rb.rb:
#======================================================
#**Implementacja algorytmu sprawdzania dnia tygodnia na
#**podstawie roku,miesiąca i dnia
#**Metoda obliczająca
#**Narzew
#**04.02.2013
#**www.algorytm.org
#======================================================

#======================================================
#**Metoda pomocnicza
#======================================================

def jest_rokiem_przestepnym(x)
		return true if x%4==0 and !(x%100==0)
		return true if x%400==0
		return false
end

#======================================================
#**Metoda właściwa
#======================================================

$week_table = [0,31,59,90,120,151,181,212,243,273,304,334] # Tablica dni roku
$mday = [31,29,31,30,31,30,31,31,30,31,30,31] # Tablica ilości dni w miesiącu (dla roku przestępnego)
def dzien_tygodnia(x,y,z)
	m = y
	m = 12 if m > 12
	r = z
	d = x
	d = 1 if d <= 0
	d = $mday[m-1] if d > $mday[m-1]
	d = 28 if m == 2 and d == 29 and !(jest_rokiem_przestepnym(z))
	yy = (r-1)%100
	c = (r-1)-yy
	g = yy + yy/4
	firstday = (((((c/100)%4)*5)+g)%7)
	yearday = $week_table[m-1] + d
	if m >= 3 and jest_rokiem_przestepnym(r)
			yearday += 1
	end
	weekday = (firstday+yearday-1)%7
	return (weekday+1)
end
Dodaj komentarz