Advertisement
bnghtz

milyen_vilagnapvan_ma.pl

Oct 17th, 2013
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 19.43 KB | None | 0 0
  1. #! /usr/bin/perl
  2. ##############################################################################
  3. #  $0             # ma milyen vilagnap van.                                  #
  4. #  $0 +10         # 10 nap mulva milyen vilagnap lesz                        #
  5. #  $0 -10         # 10 nappal ezelott milyen vilagnap lesz                   #
  6. #  $0 2020.03.13  # adott datumkor milyen vilagnap lesz?                     #
  7. #  $0 2020-03-13  # adott datumkor milyen vilagnap lesz?                     #
  8. #  $0 03-13       # elkovetkezo honap, nap-jan milyen vilagnap lesz          #
  9. ##############################################################################
  10. use strict;
  11. use warnings;
  12. use Time::Local;
  13. use Data::Dumper;
  14.  
  15. # use UTF8;
  16. # binmode(STDOUT, ":utf8");          #treat as if it is UTF-8
  17. # binmode(STDIN, ":encoding(utf8)"); #actually check if it is UTF-8
  18.  
  19. # {month}->{day} = event
  20. my $fix = {
  21.  1 => {
  22.          1 => "A béke világnapja",
  23.         15 => "A Wikipédia napja",
  24.         26 => "Nemzetközi vámnap",
  25.         27 => "A holokauszt nemzetközi világnapja",
  26.         28 => "Az adatvédelem nemzetközi napja",
  27.         30 => "A lepra elleni harc világnapja"
  28.       },
  29.  
  30.  2 => {
  31.          2 => "Szerzetesek világnapja / A vizes élőhelyek napja",
  32.          3 => "Rejtvényfejtök világnapja",
  33.          4 => "Rákellenes világnap",
  34.          6 => "A barátságos Internet napja",
  35.          7 => "A barátságos Internet napja",
  36.          8 => "A barátságos Internet napja",
  37.         11 => "Betegek világnapja",
  38.         14 => "Az epilepszia világnapja",
  39.         21 => "Az anyanyelv nemzetközi napja / Az idegenvezetők világnapja",
  40.         22 => "Bűncselekmények áldozatainak napja",
  41.       },
  42.  3 => {      
  43.          1 => "A polgári védelem világnapja / Az atomfegyvermentes és független Csendes-óceáni térség napja",
  44.          2 => "A faji megkülönböztetés elleni küzdelem nemzetközi napja (röviden: antirasszista világnap) /     Az ima világnapja",
  45.          3 => "A békéért küzdő írók világnapja",
  46.          5 => "Lemezlovasok, DJ-k világnapja",
  47.          6 => "Energiatakarékossági világnap",
  48.          8 => "Nemzetközi nőnap",
  49.         14 => "Gátellenes világnap",
  50.         15 => "Fogyasztóvédelmi világnap /   Nemzetközi fókavadászat-ellenes nap",
  51.         18 => "Az alvás világnapja",
  52.         19 => "Cigányság világnapja",
  53.         20 => "A boldogság világnapja",
  54.         21 => "A költészet világnapja / A faji megkülönböztetés (apartheid) elleni küzdelem napja / A planetáris tudat világnapja / A Down-szindróma Világnapja",
  55.         22 => "A víz világnapja",
  56.         23 => "Meteorológiai világnap",
  57.         24 => "A tuberkulózis (tbc) elleni küzdelem világnapja /     Ifjúsági világnap.",
  58.         25 => "A magzatgyermek napja",
  59.         26 => "A dokumentumszabadság világnapja",
  60.         27 => "Színházi világnap",
  61.       },
  62.  4 => {
  63.          2 => "Szakszervezeti akciónap / Gyermekkönyvek nemzetközi napja / Az Autizmus Világnapja",
  64.          3 => "Csillagászati világnap",
  65.          7 => "Az egészség világnapja",
  66.          8 => "Roma kultúra világnapja / Az emberszeretet világnapja",
  67.         11 => "A Parkinson-kór világnapja",
  68.         12 => "Az űrhajózás világnapja",
  69.         14 => "A könyvtárosok világnapja",
  70.         18 => "Műemlékvédelmi világnap / Rádióamatőr világnap",
  71.         22 => "A Föld napja / Holokauszt világnapja / Az ápolók világnapja.",
  72.         23 => "A könyv és a szerzői jogok világnapja",
  73.         24 => "A Kísérleti állatok Világnapja",
  74.         26 => "A szellemi tulajdon világnapja World Intellectual Property Day",
  75.         27 => "Vakvezető kutyák világnapja",
  76.         28 => "Halott és megrokkant dolgozók nemzetközi emléknapja / Testvérvárosok világnapja",
  77.         29 => "Nemzetközi táncnap",
  78.       },
  79.  5 => {
  80.         1 => "Munkavállalók szolidaritási napja",
  81.         3 => "A nemzetközi sajtószabadság napja",
  82.         4 => "Tűzoltók napja",
  83.         5 => "Európa-nap",
  84.         8 => "A Nemzetközi Vöröskereszt és Vörös Félhold napja / A méltányos kereskedelem (fair trade) világnapja",
  85.         10 => "Madarak és fák napja",
  86.         12 => "az ápolónők nemzetközi napja",
  87.         14 => "Vándormadarak világnapja",
  88.         15 => "a család nemzetközi napja / Nemzetközi klímaváltozási akciónap",
  89.         17 => "Az információs társadalom világnapja / A távközlés világnapja / Homofóbia-ellenes világnap",
  90.         18 => "A múzeumok nemzetközi napja / Az Internet világnapja",
  91.         19 => "Tömegtájékoztatás világnapja",
  92.         22 => "A biológiai sokféleség nemzetközi napja / Kihívás Napja(Challenge Day) / Európai Elhízás Elleni Nap",
  93.         24 => "Európai nemzeti parkok napja",
  94.         25 => "Afrika napja / „törülközőnap” Douglas Adams emlékére / Eltűnt Gyerekek Világnapja",
  95.       },
  96.  6 => {
  97.          1 => "A Torta világnapja",
  98.          4 => "Az erőszak gyermekáldozatainak világnapja",
  99.          5 => "Környezetvédelmi világnap",
  100.          8 => "Az óceánok világnapja",
  101.         12 => "A gyermekmunka elleni világnap",
  102.         14 => "Véradók világnapja",
  103.         16 => "Az afrikai gyermekek világnapja",
  104.         17 => "A sivatagosodás és aszály elleni küzdelem világnapja",
  105.         20 => "A menekültek világnapja / Társállatok világnapja",
  106.         21 => "A zene világnapja / Menj gördeszkázni nap (Go Skateboarding Day)",
  107.         23 => "Olimpiai világnap / Spamellenes világnap / Nemzetközi SOS Gyermekfalvak napja / A közalkalmazottak napja",
  108.         26 => "Kábítószer-ellenes világnap / A kínzás áldozatai támogatásának világnapja",
  109.         27 => "Cukorbetegek világnapja.",
  110.         29 => "Nemzetközi Duna-nap",
  111.         31 => "A nemdohányzók világnapja",
  112.       },
  113.  7 => {
  114.          2 => "a sportújságírók napja",
  115.         11 => "népesedési világnap",
  116.         20 => "a Hold napja",
  117.         28 => "A hepatitisz világnapja",
  118.       },
  119.  8 => {
  120.          1 => "az anyatejes táplálás világnapja",
  121.          6 => "a nukleáris fegyverek betiltásáért folyó harc világnapja",
  122.          9 => "a világ őslakosainak nemzetközi napja",
  123.         10 => "a biodízel nemzetközi napja",
  124.         12 => "a fiatalok világnapja",
  125.         13 => "balkezesek világnapja",
  126.         15 => "repülők napja",
  127.         16 => "a hontalan állatok világnapja",
  128.         30 => "az eltűntek világnapja",
  129.       },
  130.  9 => {
  131.          1 => "A második világháború emléknapja",
  132.          8 => "az írástudatlanság elleni küzdelem nemzetközi napja / a fizioterápia világnapja",
  133.         10 => "az öngyilkosság megelőzésének világnapja",
  134.         12 => "Gyermekek világnapja",
  135.         15 => "a demokrácia nemzetközi napja / a mozdonyvezetők napja",
  136.         16 => "az ózon világnapja / a hangzáskultúra napja",
  137.         18 => "Takarítási világnap",
  138.         20 => "európai kultúra napja /biztosítási világnap",
  139.         21 => "ENSZ nemzetközi békenap / a hála világnapja / Alzheimer-világnap",
  140.         22 => "európai autómentes nap",
  141.         23 => "Nemzetközi hulladékgyűjtő nap",
  142.         26 => "nyelvek európai napja / a tiszta hegyek napja",
  143.         27 => "Idegenforgalmi világnap",
  144.         30 => "Fordítás Nemzetközi Napja",
  145.       },
  146. 10 => {
  147.          1 => "a zene világnapja /     az idősek világnapja",
  148.          2 => "az erőszakmentesség világnapja /  a sztómások világnapja",
  149.          4 => "az állatok világnapja / a világűr világhete",
  150.          5 => "pedagógusjogok világnapja / a világűr világhete",
  151.          6 => "Építészek világnapja. / a világűr világhete",
  152.          7 => "a világűr világhete",
  153.          8 => "Madármegfigyelési világnap.",
  154.          9 => "postai világnap",
  155.         10 => "A halálbüntetés elleni harc világnapja / a lelki egészség világnapja",
  156.         14 => "szabványosítási világnap /   Steve Jobs Nap",
  157.         15 => "a fehér bot (a vakok és gyengénlátók) nemzetközi napja / falusi nők világnapja / kézmosás világnapja",
  158.         16 => "élelmezési világnap / a kenyér világnapja",
  159.         17 => "a szegénység elleni küzdelem világnapja",
  160.         20 => "a csontritkulás nemzetközi napja / Statisztikai Világnap",
  161.         21 => "Földünkért világnap",
  162.         22 => "a dadogás elfogadásának nemzetközi világnapja",
  163.         24 => "az ENSZ világnapja / az Origami Világnapja",
  164.         28 => "az animáció világnapja",
  165.         31 => "A reformáció emléknapja.",
  166.       },
  167. 11 => {
  168.          5 => "európai kereskedelmi nap",
  169.          6 => "nemzetközi nap a környezet háború és fegyveres konfliktus során történő kifosztásának megelőzéséért",
  170.          9 => "feltalálók napja",
  171.         10 => "a tudomány világnapja a békéért és fejlődésért",
  172.         11 => "a katonai felderítők napja",
  173.         12 => "minőségügyi világnap",
  174.         14 => "a cukorbetegek világnapja",
  175.         16 => "a tolerancia nemzetközi napja",
  176.         17 => "nemzetközi diáknap / Füstmentes nap",
  177.         19 => "A nemzetközi férfinap.",
  178.         20 => "a gyermekek jogainak világnapja / ifjú zenebarátok világnapja / Transzneműek Emléknapja",
  179.         21 => "a televíziózás nemzetközi napja",
  180.         25 => "a nők elleni erőszak megszüntetésének világnapja",
  181.         26 => "a torta világnapja",
  182.         27 => "a Nobel-díj alapításának napja",
  183.       },
  184. 12 => {
  185.          1 => "a békéért bebörtönzöttek nemzetközi napja / AIDS-ellenes világnap",
  186.          3 => "fogyatékos emberek világnapja",
  187.          5 => "a gazdasági és szociális fejlődés önkénteseinek világnapja",
  188.          7 => "a nemzetközi polgári repülés napja",
  189.         10 => "emberi jogok napja",
  190.         11 => "nemzetközi hegynap",
  191.         18 => "emigránsok nemzetközi napja",
  192.       }
  193. };
  194.  
  195. # {month}->[place, dow, event];
  196. my $mov = {
  197.    1 => [
  198.           [  3, 7, "A vallások világnapja"],
  199.           [ -1, 7, "A lepra elleni harc világnapja"]
  200.         ],
  201.    2 => [
  202.           [  1 ,4 ,"Választások világnapja"],
  203.           [  2 ,7 ,"A házasság világnapja"]
  204.         ],
  205.    3 => [
  206.           [ -1, 6, ", 20.30 – 21.30 A Föld órája"]
  207.         ],
  208.    4 => [
  209.           [ -1, 7, "Testvérvárosok világnapja"],
  210.           [  3, 3, "A vakvezető kutyák világnapja"],
  211.           [  4, 3, "A vakvezető kutyák világnapja"]
  212.         ],
  213.    5 => [
  214.           [  1, 7, ". Anyák napja"],
  215.           [  1, 2, "Az asztma világnapja"],
  216.           [  2, 6, "A méltányos kereskedelem (fair trade) világnapja"],
  217.           [ -1, 2, "Nemzetközi tejnap"]
  218.         ],
  219.    6 => [
  220.           [  1,7, "Pedagógusnap"],
  221.           [  1,6, "A lakáskultúra világnapja"]
  222.         ],
  223.    7 => [
  224.           [  1, 6, "Nemzetközi szövetkezeti nap"],
  225.           [  1, 6, "Az ölelés napja"],
  226.           [ -1, 5, "A rendszergazdák világnapja"]
  227.         ],
  228. #   8 => [
  229. #          
  230. #        ],
  231.    9 => [
  232.           [  2, 6, "Az elsősegélynyújtás világnapja"],
  233.           [  3, 6, "Takarítási világnap (szemétszedési világnap)"],
  234.           [  3, 6, "A kulturális örökség napjai"],
  235.           [  3, 7, "A kulturális örökség napjai"],
  236.           [ -1, 7, "A szív világnapja"],
  237.           [ -1, 7, "Siketek világnapja"],
  238.           [ -1, 7, "A fehér kendő napja"],
  239.           [ -1, 7, "Tengerészeti világnap"]
  240.         ],
  241.   10 => [
  242.           [ -1, "work", "Takarékossági világnap"],
  243.           [  1, 1, "Építészeti világnap vagy Habitat világnap"],
  244.           [  1, 6, "Madármegfigyelési világnap"],
  245.           [  1, 7, "Madármegfigyelési világnap"],
  246.           [  1, 7, "A gyaloglók világnapja"],
  247.           [  2, 7, "A gyaloglók világnapja"],
  248.           [  2, 3, "A természeti katasztrófák csökkentésének világnapja"],
  249.           [  2, 4, "A látás világnapja"],
  250.           [  2, 5, "A tojás világnapja"],
  251.           [  2, 6, "A hospice-ellátás világnapja"],
  252.           [  3, 7, "Missziók világnapja"],
  253.           [  4, 1, "Az iskolai könyvtárak világnapja "]
  254.         ],
  255.   11 => [
  256.           [  1, 5, "Ne vásárolj semmit nap"],
  257.           [  3, 3, "Térinformatikai világnap (GIS Day)"],
  258.           [  3, 4, "Dohányzásmentes nap"],
  259.           [  3, 4, "A filozófia világnapja "],
  260.           [  3, 7, "A közlekedési balesetek áldozatainak emléknapja"],
  261.           [  4, 5, "Ne vásárolj semmit nap"]
  262.         ]
  263. };
  264.  
  265. my $mov2 = {
  266.   11 => [ 15, -1, 5, "Dominónap" ]
  267. };
  268.  
  269. sub isoDate($)
  270. {
  271.   my $ref = shift;
  272.   return (ref($ref) eq 'ARRAY') ? join('-', map{sprintf("%02d",$_);} @{$ref}) : 0;
  273. }
  274.  
  275. sub isLeapYear($)
  276. {
  277.   my ($y) = @_;
  278.  
  279.   my $ret = (!($y % 4) && (($y % 100) || !($y % 400))) ? 1 : 0;
  280.  
  281.   return $ret;
  282. }
  283.  
  284. sub lastDayOf($$)
  285. {
  286.   my ($month, $year) = @_;
  287.   my $ret = (grep {$month == $_} 4,6,9,11) ? 30 : ($month == 2) ? isLeapYear($year) ? 29 : 28 : 31;
  288. }
  289.  
  290. sub today()
  291. {
  292.   my @date = localtime(time);
  293.   $date[5] += 1900; # year
  294.   $date[4] += 1; # month
  295.   map {$_ = '0'.$_ if ($_ < 10)} @date;
  296.   my $ret = [$date[5],$date[4],$date[3]];
  297.  
  298.   return $ret;
  299. }
  300.  
  301. sub today_and($)
  302. {
  303.   my $day_diff = shift;
  304.   return undef if (!$day_diff || ($day_diff !~ /^[-+]?\d+$/));
  305.  
  306.   my @date = localtime(time + (86400*$day_diff));
  307.   $date[5] += 1900; # year
  308.   $date[4] += 1; # month
  309.  
  310.   my $ret = [$date[5],$date[4],$date[3]];
  311.  
  312.   return $ret;
  313. }
  314.  
  315. sub validateDate($)
  316. {
  317.   my $date = shift;
  318.   my $ret;
  319.  
  320.   if ($date =~ m/(\d\d\d\d)[-\.](\d\d?)[-\.](\d\d?)/)
  321.   {
  322.     my ($year,$month,$day) = ($1,$2,$3);
  323.     eval
  324.     {
  325.       timelocal(0,0,0,$day, $month-1, $year);
  326.       1;
  327.     };
  328.     $ret = [$year,$month,$day] unless $@;
  329.   }
  330.  
  331.   return $ret;
  332. }
  333.  
  334. # 1-2-3-4-5 == working day  # TODO except big holidays
  335. sub isItWorkingDay($)
  336. {
  337.   my $dow = shift;
  338.   return (($dow >= 1) && ($dow <= 5)) ? 1 : 0;
  339. }
  340.  
  341. sub nth_x_day_of($$$$)
  342. {
  343.   # input: monday = 1, sunday = 0|7;
  344.   my ($n, $dow, $month, $year) = @_;
  345.   my $ret;
  346.   $dow = 0 if ($dow eq 7); # sunday 0, mon-sat 1-6
  347.  
  348.   my $Day;
  349.  
  350.   foreach my $day (1 .. (7 * $n))
  351.   {
  352.     my $time = timelocal(0, 1, 1, $day, $month-1, $year-1900);
  353.     my $dow_ = (localtime($time))[6];
  354.    
  355.     if ($dow eq 'work')
  356.     {
  357.       $n-- if (isItWorkingDay($dow_));
  358.      
  359.       if (!$n)
  360.       {
  361.         $Day = $day;
  362.         last;
  363.       }
  364.     }
  365.     elsif ($dow !~ /\D/)
  366.     {
  367.       $n-- if ($dow == $dow_);
  368.      
  369.       if (!$n)
  370.       {
  371.         $Day = $day;
  372.         last;
  373.       }
  374.     }
  375.   }
  376.  
  377.   # map { $_ = "0$_" if $_ < 10 } $month, $Day;
  378.   $ret = isoDate([$year,$month,$Day]);
  379.  
  380.   return $ret;
  381. }
  382.  
  383. sub first_x_day_of($$$)
  384. {
  385.   my ($n, $dow, $month, $year) = (1,@_);
  386.   return nth_x_day_of($n, $dow, $month, $year);
  387. }
  388.  
  389. sub last_x_day_of($$$)
  390. {
  391.   # input: monday = 1, sunday = 0|7;
  392.   my ($dow, $month, $year) = @_;
  393.   my $ret;
  394.  
  395.   $dow = 0 if ($dow eq 7);
  396.   my $lastDO = lastDayOf($month, $year);
  397.   my $Day;
  398.  
  399.   # iterate the last 7 days  
  400.   for( my $day = $lastDO; $day > ($lastDO - 7); $day-- )
  401.   {
  402.     my $time = timelocal(0, 1, 1, $day, $month-1, $year-1900);
  403.     my $dow_ = (localtime($time))[6];
  404.  
  405.     if ($dow eq 'work')
  406.     {
  407.       if (isItWorkingDay($dow_))
  408.       {
  409.         $Day = $day;
  410.         last;
  411.       }
  412.     }
  413.     elsif ($dow !~ /\D/)
  414.     {
  415.       if ($dow == $dow_)
  416.       {
  417.         $Day = $day;
  418.         last;
  419.       }
  420.     }
  421.   }
  422.  
  423.   # map { $_ = "0$_" if $_ < 10 } $month, $Day;
  424.   $ret = isoDate([$year,$month,$Day]);
  425.  
  426.   return $ret;
  427. }
  428.  
  429. sub x_day_beforeafter_YMD($$$$$)
  430. {
  431.   # input: monday = 1, sunday = 0|7;
  432.   my ($dow, $year,$month,$day,$direction) = @_;
  433.   my $ret;
  434.  
  435.   $dow = 0 if ($dow eq 7);
  436.   my $lastDO = lastDayOf($month, $year);
  437.   die "mtf" if ($day > $lastDO);
  438.  
  439.   my $Day;
  440.  
  441.   if ($direction < 0)
  442.   {
  443.     for( my $d = $day; $d > 0; $d-- )
  444.     {
  445.       my $time = timelocal(0, 1, 1, $d, $month-1, $year-1900);
  446.       my $dow_ = (localtime($time))[6];
  447.  
  448.       if ($dow eq 'work')
  449.       {
  450.         if (isItWorkingDay($dow_))
  451.         {
  452.           $Day = $day;
  453.           last;
  454.         }
  455.       }
  456.       elsif ($dow !~ /\D/)
  457.       {
  458.         if ($dow == $dow_)
  459.         {
  460.           $Day = $day;
  461.           last;
  462.         }
  463.       }
  464.     }
  465.   }
  466.   elsif ($direction > 0)
  467.   {
  468.     for( my $d = $day; $d <= $lastDO; $d++ )
  469.     {
  470.       my $time = timelocal(0, 1, 1, $d, $month-1, $year-1900);
  471.       my $dow_ = (localtime($time))[6];
  472.  
  473.       if ($dow eq 'work')
  474.       {
  475.         if (isItWorkingDay($dow_))
  476.         {
  477.           $Day = $day;
  478.           last;
  479.         }
  480.       }
  481.       elsif ($dow !~ /\D/)
  482.       {
  483.         if ($dow == $dow_)
  484.         {
  485.           $Day = $day;
  486.           last;
  487.         }
  488.       }
  489.     }
  490.   }
  491.  
  492.   # map { $_ = "0$_" if $_ < 10 } $month, $Day;
  493.   $ret = isoDate([$year,$month,$Day]);
  494.  
  495.   return $ret;
  496. }
  497.  
  498. # fix: {month}->{day} = event
  499. sub getFixDate($)
  500. {
  501.   my $dateRef = shift;
  502.   return undef unless ref($dateRef) eq 'ARRAY';
  503.  
  504.   $dateRef = validateDate(isoDate($dateRef));
  505.   my (undef, $month, $day) = @{$dateRef};
  506.  
  507.   my $ret = $fix->{int($month)}->{int($day)};
  508.  
  509.   return $ret;
  510. }
  511.  
  512. # mov:  {month}->[place, dow, event];
  513. sub getMovDate($)
  514. {
  515.   my ($dateRef) = @_;
  516.  
  517.   # check input
  518.   return undef unless ref($dateRef) eq 'ARRAY';
  519.   $dateRef = validateDate(isoDate($dateRef));
  520.   return undef unless $dateRef;
  521.  
  522.   my @ret = ();
  523.   my ($year, $month, $day) = @{$dateRef};
  524.   my $isoDate = isoDate($dateRef);
  525.  
  526.   foreach my $r (@{$mov->{int($month)}})
  527.   {
  528.     my ($place, $dow, $event) = @{$r};
  529.     my $d;
  530.    
  531.     $d = last_x_day_of($dow,$month,$year) if ($place < 0);
  532.     $d = nth_x_day_of($place,$dow,$month,$year) if ($place > 0);
  533.  
  534.     push(@ret, $event) if ($d && ($d eq $isoDate));
  535.   }
  536.  
  537.   {
  538.     #  11 => [ 15, -1, 5, "Dominónap" ]
  539.     my $ref = $mov2->{int($month)};
  540.     if ($ref)
  541.     {
  542.       my ($day, $direction, $dow, $event) = @{$ref};
  543.       my $d;
  544.       $d = x_day_beforeafter_YMD($dow,$year,$month,$day,$direction);
  545.       push(@ret, $event) if ($d && ($d eq $isoDate));
  546.     }
  547.   }
  548.  
  549.   return wantarray ? @ret : \@ret;
  550. }
  551.  
  552.  
  553.  
  554. ##############################################################################
  555.  
  556. # handling arguments
  557. my $today = today();
  558. my $reqDate;
  559. # YYYY.MM.DD || YYYY-MM-DD
  560. $reqDate = [ split(/\D/,$ARGV[0]) ] if ($ARGV[0] && $ARGV[0] =~ m/^\d\d\d\d-|\.\d\d?-|\.\d\d?$/);
  561. #  MM DD
  562. if (($ARGV[0] && $ARGV[0] =~ m/^\d\d?$/) && ($ARGV[1] && $ARGV[1] =~ m/^\d\d?$/))
  563. {
  564.   $reqDate = [ $today->[0], $ARGV[0], $ARGV[1] ] if $today->[1] <= $ARGV[0];
  565.   $reqDate = [ $today->[0]+1, $ARGV[0], $ARGV[1] ] if $today->[1] > $ARGV[0];
  566. }
  567. # +- D
  568. $today = today_and($ARGV[0]) if ($ARGV[0] && $ARGV[0] =~ /^[+-]?\d+$/);
  569. # today
  570. $reqDate ||= $today;
  571.  
  572. # get fix dates
  573. my $fix_day = getFixDate($reqDate);
  574. print "fix date: ". isoDate($reqDate) . "   $fix_day\n" if $fix_day;
  575.  
  576. # get moving dates
  577. my @mov_day  = getMovDate($reqDate);
  578. print "Mov date: ". isoDate($reqDate) . "   " . join("\n",@mov_day )."\n" if @mov_day ;
  579.  
  580. print "Vilag nap mentes vilagnap! :)\n" unless (@mov_day || $fix_day);
  581.  
  582.  
  583.  
  584. =mozgo vilagnapok
  585. "Ifjúsági világnap"  A húsvét előtti vasárnap, azaz virágvasárnap napján
  586. "Imanap a világ éhezőiért." Farsangvasárnap (a nagyböjt kezdetét megelőző vasárnap)
  587. "A csillagászat napja" április közepe és május közepe között
  588. "A Nap napja"   a nyári napforduló előtti vagy utáni vasárnap
  589. "A szentírás vasárnapja" szeptember 30-hoz közel eső vasárnap, általában szeptember utolsó vasárnapja
  590. "Dominónap"    November 15-e, vagy az azt megelőző péntek
  591.  
  592. =cut
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement