Programozó versenyek

Programozási technológiák pótZH 2014-04-10 Cs18

2014. április 10. 18:20 – 2014. április 10. 20:45

Dátumok különbsége

Írjon programot, amely kiszámítja, hogy két dátum között hány nap van! Például a mai és a holnapi dátum közötti napok száma 1, a Java nyelv 1.0-ás verziójának megjelenése (1996. január 23.) és 8-as verziójának megjelenése (2014. március 18.) között eltelt napok száma 6630. 31 napos hónapok: január, március, május, július, augusztus, október, december. 30 napos hónapok: április, június, szeptember, november. A február 28 napos, kivéve szökőévente, amikor 29 napos. Szökőévek a néggyel osztható évek, kivéve a 100-zal osztható, de 400-zal nem osztható éveket (vagyis a 400-zal osztható évek szövőévek!). A lenti példa inputban szereplő dátumok tartományában elhelyezkedő évek közül szökőévek az 1996-os, a 2000-es, a 2004-es, a 2008-as, 2012-es és a 2016-os évek, az összes többi nem szökőév (pl. 1900 százzal osztható, de négyszázzal nem, ezért nem szökőév, míg 2000 négyszázzal oszthatósága miatt szökőév). A dátumok különbsége negatív is lehet, ha az első dátum későbbi, mint a második.

A bemenet specifikációja

A bemeneten soronként két, egymástól pontosan egy szóközzel elválasztott, YYYY-MM-DD formátumú dátum helyezkedik el, állományvégjelig.

A kimenet specifikációja

A kimenetnek pontosan annyi sora van, mint a bemenetnek, és minden bemeneti dátumpárra a dátumok közötti különbséget tartalmazza.

Példa bemenet

  1. 1996-01-23 2014-03-18
  2. 2014-04-10 2014-04-10
  3. 2014-04-10 2014-04-11
  4. 2014-01-01 2014-04-10
  5. 2012-01-01 2012-04-10
  6. 1900-04-10 1900-01-01
  7. 2000-04-10 2000-01-01
  8. 2016-02-28 2016-03-01
  9. 2015-03-01 2015-02-28
letöltés szöveges állományként

Példa kimenet

  1. 6630
  2. 0
  3. 1
  4. 100
  5. 101
  6. -100
  7. -101
  8. 2
  9. -1
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.