algorytm.org

Implementacja w Java



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 Java
Ocena użytkownikóww: *****  / 4
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 02 marca 2008 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Dzien.java:
// Wyznaczanie dnia tygodnia
// www.algorytm.org
// (c)2008 by Tomasz Lubinski

public class Dzien {
	
	//tablica z nazwami dni tygodnia
	public static String tydzien[] = 
		{"poniedziałek", "wtorek", "sroda", "czwartek", "piatek", "sobota", "niedziela"};
	
	//tablica z liczbą dni od początku roku (nieprzestepnego) dla kolejnych miesiecy
	public static int liczbaDni[] = 
		{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};

	//true jezeli podany rok jest przestepny, 
	//false w przeciwnym wypadku
	public static boolean przestepny(int rok) {
		return ((rok % 4 == 0  &&  rok % 100 != 0) || rok % 400 == 0);
	}

	//dla podanej daty wyznacza dzien tygodnia
	//0 - poniedziałek, 1 - wtorek, ... 6 - niedziela
	public static int dzienTygodnia(int dzien, int miesiac, int rok) {
		int dzienRoku;
		int yy, c, g;
		int wynik;
		
		dzienRoku = dzien + liczbaDni[miesiac-1];
		if ((miesiac > 2) && (przestepny(rok) == true))
			dzienRoku++;
		
		yy = (rok - 1) % 100;
		c = (rok - 1) - yy;
		g = yy + (yy / 4);
		wynik = (((((c / 100) % 4) * 5) + g) % 7);
		wynik += dzienRoku - 1;
		wynik %= 7;

		return wynik;
	}
	
	//pobiera dane od uzytkownika, oblicza dzien tygodnia
	public static void main(String[] args) {
		int m, r, d, wynik;
		
		System.out.println("Podaj dla jakiej daty obliczyc dzien tygodnia.");
		
		System.out.println("Podaj dzien:");
		d = Console.readInt("");
		System.out.println("Podaj miesiac:");
		m = Console.readInt("");
		System.out.println("Podaj rok:");
		r = Console.readInt("");
		
		wynik = dzienTygodnia(d, m, r);
		System.out.println("Dzien tygodnia dla podanej daty to " + tydzien[wynik]);

	}

}
Dodaj komentarz