19 stycznia

Z Nonsensopedii, polskiej encyklopedii humoru
  1. !/usr/bin/ruby

month,day = ARGV

unless month and day print "Użycie: #{$0} <numer miesiąca> <numer dnia>\n" exit end

month = month.to_i day = day.to_i

$month_size = [ 0, 31,28,31,30, 31,30,31,31, 30,31,30,31 ] $month_names = [ 'X', 'stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia' ]

if month < 1 or month > 12 print "Nie ma takiego miesiąca: numer #{month}\n" exit end if month == 2 if (day < 1 or day > 29) and month == 2 print "Nie ma takiego dnia: #{day} #{$month_names[month]}\n" exit end else if day < 1 or day > $month_size[month] print "Nie ma takiego dnia: #{day} #{$month_names[month]}\n" exit end end $month_startday = [ 0, 0,31,59, 90,120,151, 181,212,243, 273,304,334 ]

def ordnumgenetiv(num) ordnumgenetiv_ends = [ "tym", "wszym", "gim", "cim", "tym", "tym", "tym", "mym", "mym", "tym" ] if num == 0 raise "wrong number: 0" elsif num % 100 == 0 "#{num}nym" elsif num >= 9 and num <= 20 "#{num}tym" end "#{num}#{ordnumgenetiv_ends[num%10]}" end

def dayno(day,month) nr = $month_startday[month] + day if month > 2 return "#{ordnumgenetiv(nr)} (w latach przestępnych #{ordnumgenetiv(nr+1)})" else return ordnumgenetiv(nr).to_s end end

def dayleft(day,month) nr = $month_startday[month] + day if month > 2 return (365-nr).to_s elsif month == 2 and day == 29 return (366-nr).to_s else return "#{365-nr} (w latach przestępnych #{366-nr})" end end

def special(day,month) if day==29 and month == 2 return "Występuje tylko w latach przestępnych." else return "" end end

def prevday(day,month) if day-1 > 0 return "[[#{day-1} #{$month_names[month]}|Poprzedni dzień]]" elsif month == 1 return "Poprzedni dzień" elsif month == 3 return "Poprzedni dzień w latach zwykłych Poprzedni dzień w latach przestępnych" else return "[[#{$month_size[month-1]} #{$month_names[month-1]}|Poprzedni dzień]]" end end

def nextday(day,month) if day+1 <= $month_size[month] return "[[#{day+1} #{$month_names[month]}|Następny dzień]]" elsif month == 12 return "Następny dzień" elsif month == 2 return "Następny dzień w latach przestępnych Następny dzień w latach zwykłych" else return "[[1 #{$month_names[month+1]}|Następny dzień]]" end end

print <<EOF

  1. {day} #{$month_names[month]} jest #{dayno(day,month)} dniem w

kalendarzu gregoriańskim, do końca roku pozostało #{dayleft(day,month)} dni.

  1. {special(day,month)}

Święta

Urodzili się:

Zmarli:

Wydarzenia:

  • w Polsce
  • na Świecie

styczeń - luty - marzec - kwiecień - maj - czerwiec - lipiec - sierpień - wrzesień - październik - listopad - grudzień

Kalendarium dzień po dniu

  1. {prevday(day,month)} #{nextday(day,month)}

EOF 19 stycznia

Święta

imieniny: ...

  • ...
  • ...

Urodzili się

Zmarli

  • ... - ...

Wydarzenia w Polsce

  • ... - ...

Wydarzenia na świecie

  • ... - ...