Zadanie związane z datą.

0

Założenia minimalne:
Proszę założyć aktualna datę jako 31.12.2012, rok liczy 365
dni, zaś każdy miesiąc 31 dni. Wartości ułamkowe proszę podawać z dokładnością
do 2 miejsc po przecinku.

Zadanie trudniejsze:
Proszę pobrać aktualną datę (getdate(.)), obliczyć dokładną ilość przeżytych dni wiedząc że rok
przestępny dzieli się przez 4, a na początku wieku przez 400 (1900 nie jest rokiem przestę
pnym!). Proszę stworzyć dwie wersje tekstu (w rodzaju męskim i żeńskim) i wprowadzić pytanie o
płeć. Mile widziane własne urozmaicenia

Jak mam zrobić żeby każdy miesiąc liczył 31 dni?
Po co to: "wiedząc że rok przestępny dzieli się przez 4, a na początku wieku przez 400 (1900 nie jest rokiem przestępnym!)."

Tzn. rozumiem, że mam zrobić instrukcję warunkową, że jeśli rok jest przestępny ma mi dodać 366 dni, ale o co chodzi z tą drugą częścią: "a na początku wieku przez 400 (1900 nie jest rokiem przestępnym!)".

0

Rok przestępny dzieli się przez 4, ale nie przez 100, chyba że przez 400.
16 - tak
200 - nie
800 - tak

0
twonek napisał(a):

Rok przestępny dzieli się przez 4, ale nie przez 100, chyba że przez 400.
16 - tak
200 - nie
800 - tak

ie to jest rozwiązanie dla pełnych miesięcy a nie np. 18 dni
chyba nic nie pochrzaniłem, pisałem na stronie</quote>

Właściwie już prawie skończyłem: http://wklej.org/id/1488581/

Pytanie do Was jak w tej klasie getNumberOfDays(int month) umieścić drugą tego typu:

 int getCheckLeapYear(int rok_ur)
{

	int x = 0;
	if ((rok_ur % 4 == 0 && rok_ur % 100 != 0) || (rok_ur % 400 == 0))
	{
		x = 29;
	}
	else
	{
		x = 28;
	}
	return x;
}

I przypisać zaś to tak np.: numberOfDays=getCheckLeapYear(rok_ur);

Albo jak inaczej wykombinować, żeby już w tej klasie sprawdzany był czy rok_urodzenia jest przestępny i jeśli tak wybierał wartość "29" ??

Mam problem, bo nie potrafię zadeklarować klasy wewnątrz funkcji main(), bo zaś mam błąd "this function is illegal", a ze zmiennej rok_ur, przed main(), nie mogę korzystać. Macie pomysł?

@Edit

Załatwiłem to instrukcją warunkową, ale pomóżcie mi ogarnąć to tak, żeby w klasie już było jakoś sprawdzone czy rok narodzin i rok aktualny jest przestępny jeśli tak to liczba dni w lutym wynosi odpowiednio 29, jeśli nie 28.

To kod tych instrukcji, którymi to załatwiłem:

/*Instrukcja warunkowa dodająca 1 dzień jeśli rok aktualny jest rokiem przestępnym*/
	if ((rok % 4 == 0 && rok % 100 != 0) || (rok % 400 == 0))
	
	{
		dni_z_miesiaca_akt += 1;
	}


/*Instrukcja warunkowa dodająca 1 dzień jeśli rok narodzin był rokiem przestępnym*/
	if((rok_ur % 4 == 0 && rok_ur % 100 != 0) || (rok_ur % 400 == 0))
	{ 
		dni_z_miesiaca_ur += 1;
	}

@Edit 2

Skończyłem niech ktoś sprawdzi -> http://wklej.org/id/1488788/

PS: Macie pomysł jak skrócić kod, zoptymalizować?

@Edit 3

Udało mi się trochę skrócić kod, przez użycie 3 funkcji. Macie pomysł jak pozbyć się pętli?

I jakie urozmaicenia macie pomysł?

1 użytkowników online, w tym zalogowanych: 0, gości: 1