19 stycznia: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
Linia 1: Linia 1:
#!/usr/bin/ruby
{{KalendariumIntro12|19 stycznia|19|348|349}}

{{Kalendarz na styczeń}}
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 "[[31 grudnia|Poprzedni dzień]]"
elsif month == 3
return "[[28 lutego|Poprzedni dzień w latach zwykłych]] [[29 lutego|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 "[[1 stycznia|Następny dzień]]"
elsif month == 2
return "[[29 lutego|Następny dzień w latach przestępnych]] [[1 marca|Następny dzień w latach zwykłych]]"
else
return "[[1 #{$month_names[month+1]}|Następny dzień]]"
end
end

print <<EOF
#{day} #{$month_names[month]} jest #{dayno(day,month)} dniem w
[[kalendarz gregoriański|kalendarzu gregoriańskim]],
do końca [[rok|roku]] pozostało #{dayleft(day,month)} dni.
#{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]]

#{prevday(day,month)} #{nextday(day,month)}
EOF
'''19 stycznia '''
'''19 stycznia '''



Wersja z 13:17, 18 sty 2006

  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

  • ... - ...