Kezdőoldal » Számítástechnika » Programozás » Pascal: program hónap elejétől...

Pascal: program hónap elejétől végéig kiírja dátumokat és ezt megadott hónapok közt is, hogyan kell ezt megoldani? (bővebben lent)

Figyelt kérdés

Szeretném, ha megadom neki számmal az évet és hónapot, a hónap első napjától az utolsóig folyamatosan kiírná a dátumot, nappal együtt.

Tömbbel tudnám megoldani, hogy a program "automatikusan tudja" hogy az adott hónap milyen hosszú, illetve le tudom kérni, hogy szökőév van -e, de reménykedem benne, hogy "egyszerűbb megoldás" is van e problémára.

Bónuszként kiírhatná azt is, hogy adott évben mikor van Húsvét és Pünkösd...

Megadom neki például, hogy 2016.01 és hogy 2016.06 és január 1-től elszámolna június utolsó napjáig...

Egyszerű megoldás van erre?

A "datumt" változót csak úgy bevezettem, nem tudom, mit tegyek vele átkonvertálás után hogy ilyen módon számolni tudjak vele...


program datumok;


uses SysUtils, DateUtils;


var

datums, tempstr : string;

datumt : TDateTime;

dowcount : integer;

i : byte;

begin

DateSeparator := '.';

for i := 1 to 31 do

begin

str (i, tempstr);

datums := '2017.01.' + tempstr;

datumt := StrToDateTime(datums);

dowcount := DayOfWeek(datumt);

WriteLn('Ma ',datums,' ',LongDayNames[dowcount],' van.');

end;

ReadLn;

end.



2017. szept. 22. 07:26
 1/5 anonim ***** válasza:
Mi okozza a problémát?
2017. szept. 22. 08:53
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Programnak szeretném megtanítani "egyszerűen", a hónapok hosszát és hogy tetszőleges hónapok közt tudjon számolni.

Alapból tömbben definiált hónap-hosszal meg tudnám tanítani és az "adott év szökőév-e" lekérdezésével, de bízom benne, hogy van valami egyszerűbb megoldás is amit Pascal-osok ismertek.

Én ahogy dateutils unit-ot átnéztem, nem igazán találtam, de biztos van.

Incmonth-ot pl. találtam ami nekem jó lehet, bár nekem egyesével kellenének a dátumok, nem hirtelen hónapot szeretnék lépni.

2017. szept. 22. 09:00
 3/5 sharkxxx ***** válasza:

program datumok;


uses

  Windows,

  SysUtils;


var

  DateStart, DateEnd, DateDay: TDateTime;

begin

  DateStart := EncodeDate(2016,01,01);

  DateEnd  := EncodeDate(2016,06+1,01); // A következõ hónap elejéig.

  DateDay := DateStart;

  while (DateDay < DateEnd) do

  begin

    Writeln(DateToStr(DateDay));

    {A trükk az, hogy a TDateTime típus igazából Double típus.

    így elég csak sima összeadással hozzáadni 1-et,

    és megkapod a következõ napot.}

    DateDay := DateDay + 1; // A következõ nap

  end ;

  Readln;

end.

2017. szept. 22. 09:52
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

Nagyon köszönöm.

Húsvétot miként tudom kiíratni, hogy "adott évben" mikorra esik pl? Valamint pünkösdöt

2017. szept. 22. 09:57
 5/5 anonim ***** válasza:
0%
Úgy, hogy kiszamolod mikor van.
2017. szept. 24. 07:56
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!