Ĺadny brzuch
Mam do napisania na informatykę programik w konsoli lub pod interfejs graficzny, który będzie obliczał ile dni mineło od jakiejś daty.
Np. ktoś podaje date:
Od: 2000-10-01
Do: 2005-05-05
i progz ma pytać czy chce obliczyc ile mineło dni, miechów czy lat.
Lata z przedziału od 1-5000.
Może ktoś pomóc. Udało mi się stworzyć programik, ale mało dokładny-który zakłada że miechy maja po 30 dni a rok 365.
A co z latami przestępnymi i tym, że miechy mają różne liczby dni!!!!
Ktoś może wybrać ile mineło dni od tego roku, tego miecha i ma wynik dobry wyjść.
Kompletnie mi to nie idzie. Prosze o pomoc. Z góry dzięki. Everything in C++
no jesli sie spodziewasz ze ktos kompletnie odwali za ciebie robote to nie wiem czy sie nie zawiedziesz
Moge Cie pomudz z jakims problemem ale pisanie od a do z calego proga nie wchodzi w rachube
Pokaz co masz do tej pory to moze to poprawimy
Tutaj coś powinno być, poszukaj w kodach źródłowych :) .
Hmm na C++ sie nie znam, ale mysle ze nie bedzie trudne przerobić ten kodzik z Delphi, bo nikt za ciebie nie napisze:
uses DateUtils; var Bylo, Jest : TDateTime; Lata, Msce, Dni : Integer; wYear, wMonth, wDay : Word; begin DecodeDate(Bylo, wYear, wMonth, wDay); Lata:=YearsBetween(Jest, Bylo); Bylo:=EncodeDate(wYear+Lata, wMonth, wDay); DecodeDate(Bylo, wYear, wonth, wDay); Msce:=MonthsBetween(Jest, Bylo); if wMonth+Msce > 12 then Bylo:=EncodeDate(wYear+1, wMonth+Msce-12, wDay) else Bylo:=EncodeDate(wYear, wMonth+Msce, wDay); DecodeDate(Bylo, wYear, wMonth, wDay); Dni:=DaysBetween(Jest, Bylo);
zmienne dnia, msce, lata zawieraja roznice czasu. Zmienne Bylo, Jest to dwie daty do porównania.
(...)
Za duże uproszczenie - moduł DateUtils, jeżeli jest w c++, to spox ;) Zrób bez tego :D
Użytkownik Cyrkiel edytował ten post 19 maj 2005, 19:54
Za duże uproszczenie - moduł DateUtils, jeżeli jest w c++, to spox ;) Zrób bez tego :D
Na 99% w BCB sie da :D
A jeżeli pisze w dev-cpp? Wątpię, czy jest tam ten moduł :unsure:
A jeżeli pisze w dev-cpp? Wątpię, czy jest tam ten moduł :unsure:
Nie odsyłajcie mnie do kursów C++. Sprawa jest bardziej złożona.
Dostałem tą fuche wczoraj na infie. Znowu wałkowali excela i wpisywali fx dzis() wyskakiwała data. I liczyli eXcelem ile dni mineło. Excel mylił się +-1dzień. Myślałem, że jest to proste i wydawało mi się, że zrobie coś takiego sam. Teraz podchodze do problemu - i wygląda na to, że sprawa jest bardziej skomplikowana.
Musi być sprawdzanie o latach przestępnych, nie każdy miesiąc ma 30 dni i te daty nie muszą być rozległe ;)
Narazie poradziłem sobie z latami, ale pełno tam jest instrukcji warunkowych. Zaplątuje sie w tym wszystkim. Pogóbić sie można.
Nie musi user podawać daty w formacie 2000-05-05
myślałem zrobić pare okienek:
data_pocz data_kon
upłyneło_dni: xxxx miechów: xxxx lat: xxxx
w interfejsie graficznym.
Przy czym data pocz i kon by się składały z pól ____|__|__|
Pomyślałem, że prościej by było w konsoli.
Mam nad czym myśleć.
Następna infa w czwartek - jest B.C. więc mam na to two weeks
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Np. ktoś podaje date:
Od: 2000-10-01
Do: 2005-05-05
i progz ma pytać czy chce obliczyc ile mineło dni, miechów czy lat.
Lata z przedziału od 1-5000.
Może ktoś pomóc. Udało mi się stworzyć programik, ale mało dokładny-który zakłada że miechy maja po 30 dni a rok 365.
A co z latami przestępnymi i tym, że miechy mają różne liczby dni!!!!
Ktoś może wybrać ile mineło dni od tego roku, tego miecha i ma wynik dobry wyjść.
Kompletnie mi to nie idzie. Prosze o pomoc. Z góry dzięki. Everything in C++
no jesli sie spodziewasz ze ktos kompletnie odwali za ciebie robote to nie wiem czy sie nie zawiedziesz
Moge Cie pomudz z jakims problemem ale pisanie od a do z calego proga nie wchodzi w rachube
Pokaz co masz do tej pory to moze to poprawimy
Tutaj coś powinno być, poszukaj w kodach źródłowych :) .
Hmm na C++ sie nie znam, ale mysle ze nie bedzie trudne przerobić ten kodzik z Delphi, bo nikt za ciebie nie napisze:
uses DateUtils; var Bylo, Jest : TDateTime; Lata, Msce, Dni : Integer; wYear, wMonth, wDay : Word; begin DecodeDate(Bylo, wYear, wMonth, wDay); Lata:=YearsBetween(Jest, Bylo); Bylo:=EncodeDate(wYear+Lata, wMonth, wDay); DecodeDate(Bylo, wYear, wonth, wDay); Msce:=MonthsBetween(Jest, Bylo); if wMonth+Msce > 12 then Bylo:=EncodeDate(wYear+1, wMonth+Msce-12, wDay) else Bylo:=EncodeDate(wYear, wMonth+Msce, wDay); DecodeDate(Bylo, wYear, wMonth, wDay); Dni:=DaysBetween(Jest, Bylo);
zmienne dnia, msce, lata zawieraja roznice czasu. Zmienne Bylo, Jest to dwie daty do porównania.
(...)
Za duże uproszczenie - moduł DateUtils, jeżeli jest w c++, to spox ;) Zrób bez tego :D
Użytkownik Cyrkiel edytował ten post 19 maj 2005, 19:54
Za duże uproszczenie - moduł DateUtils, jeżeli jest w c++, to spox ;) Zrób bez tego :D

Na 99% w BCB sie da :D
A jeżeli pisze w dev-cpp? Wątpię, czy jest tam ten moduł :unsure:
A jeżeli pisze w dev-cpp? Wątpię, czy jest tam ten moduł :unsure:

Nie odsyłajcie mnie do kursów C++. Sprawa jest bardziej złożona.
Dostałem tą fuche wczoraj na infie. Znowu wałkowali excela i wpisywali fx dzis() wyskakiwała data. I liczyli eXcelem ile dni mineło. Excel mylił się +-1dzień. Myślałem, że jest to proste i wydawało mi się, że zrobie coś takiego sam. Teraz podchodze do problemu - i wygląda na to, że sprawa jest bardziej skomplikowana.
Musi być sprawdzanie o latach przestępnych, nie każdy miesiąc ma 30 dni i te daty nie muszą być rozległe ;)
Narazie poradziłem sobie z latami, ale pełno tam jest instrukcji warunkowych. Zaplątuje sie w tym wszystkim. Pogóbić sie można.
Nie musi user podawać daty w formacie 2000-05-05
myślałem zrobić pare okienek:
data_pocz data_kon
upłyneło_dni: xxxx miechów: xxxx lat: xxxx
w interfejsie graficznym.
Przy czym data pocz i kon by się składały z pól ____|__|__|
Pomyślałem, że prościej by było w konsoli.
Mam nad czym myśleć.
Następna infa w czwartek - jest B.C. więc mam na to two weeks