Na tej stronie znajduje się kod skryptu użytkowego Wikipedii napisanego w języku programowania Ruby, który wypisuje na standardowe wyjście szablon roku np. 1410, 1411 itd

Zobacz też: Tworzenie szablonu dekady

Działanie

Jako argument w linii komend podaje się liczbę będącą rokiem, którego szablon chcemy uzyskać.
Lepiej nie generować lat poniżej 50 roku n.e

[kpjas@moochca kpjas] $ ruby rok.rb 1410

Jeśli chcemy zapisać szblon do pliku

[kpjas@moochca kpjas] $ ruby rok.rb 1410 >1410.txt

#!/usr/bin/ruby

class Year

def initialize(year)
@given_year=year
@start_year,@end_year=calc_start_end_year(year)
@century=calculate_century(year)
generate_year_array()
generate_century_str()
end

def generate_decades_list(yy)
cent = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX", "XXI", "XXII", "XXIII "]
arr = ["dummy0", "dummy1", "Lata 20.","Lata 30.","Lata 40.","Lata 50.","Lata 60.","Lata 70.","Lata 80.","Lata 90."]
#ss_year,ee_year = calc_start_end_year(yy)
ss_year = @start_year.dup; ee_year = @end_year.dup
print "Dziesięciolecia : "
-50.step(-10,10) { |f|
tmpval = (ss_year + f)%100
if(tmpval < 20 )
sss = "[[Lata #{ss_year + f }-#{ee_year +  f }|#{ss_year + f}-#{ee_year+f}]]"
else
if( (ss_year%100) + f < 0 )
ccc = @century - 1
else
ccc = @century
end
sss = "[[Lata #{tmpval}. #{cent[ccc]} wieku|#{ss_year + f}-#{ee_year+f}]]"
end
print sss, "\n"
}
print "'''#{@start_year}-#{@end_year}'''\n"
10.step(50,10) { |f|
tmpval = (ss_year + f)%100
if(tmpval < 20 )
sss = "[[Lata #{ss_year + f }-#{ee_year +  f }|#{ss_year + f}-#{ee_year+f}]]"
else
if( (ss_year%100)+f > 100 )
ccc = @century + 1
else
ccc = @century
end
sss = "[[Lata #{tmpval}. #{cent[ccc]} wieku|#{ss_year + f}-#{ee_year+f}]]"
end
puts sss
}
end

def generate_year_array()
@years_arr = []
@years_arr[0] = "[[#{@start_year}]], "
@years_arr[1] = "[[#{@start_year+ 1}]], "
@years_arr[2] = "[[#{@start_year+ 2}]], "
@years_arr[3] = "[[#{@start_year+ 3}]], "
@years_arr[4] = "[[#{@start_year+ 4}]], "
@years_arr[5] = "[[#{@start_year+ 5}]], "
@years_arr[6] = "[[#{@start_year+ 6}]], "
@years_arr[7] = "[[#{@start_year+ 7}]], "
@years_arr[8] = "[[#{@start_year+ 8}]], "
@years_arr[9] = "[[#{@start_year+ 9}]]"
end

def generate_century_str()
arr = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX", "XXI", "XXII", "XXIII "]
pre = @century - 1
the_one =  @century
post = @century + 1
if(pre >= 0 && pre < 4)
pre1 = "[[#{arr[pre]} wiek n.e]]"
else
pre1 = "[[#{arr[pre]} wiek]]"
end
if(post >= 0 && post < 4) # od wieku 1 do 4 naszej ery z suffiksem "n.e"
post1 = "[[#{arr[post]} wiek n.e]]"
else
post1 = "[[#{arr[post]} wiek]]"
end
if(the_one >= 0 && the_one < 4)
the_one1 = "[[#{arr[the_one]} wiek n.e]]"
else
the_one1 = "[[#{arr[the_one]} wiek]]"
end
if(@century >= 1)
@centuries_string="<center>Stulecia : #{pre1} - #{the_one1} - #{post1}</center>"
elsif( @century == 0)
@centuries_string="<center>Stulecia : [[I wiek p.n.e]] - '''#{the_one1}''' - #{post1}</center>"
else
@centuries_string="Błąd : nie obsługuje lat przed naszą erą"
end
end

def calculate_century(y)
var1 = y/100
end

def calc_start_end_year(y)
var1 = y%10
s_year=y - var1
e_year=y + (9 - var1)
[s_year,e_year]
end

def print_all
print "<center><b>#{@given_year}</b></center>\n\n"
puts generate_century_str(); print "\n"
print "<center>"; generate_decades_list(@given_year); print "</center>\n\n"

print "Lata : "
pre = @given_year.to_i - 5
pre.upto(@given_year.to_i - 1 ) {|x| print "[[", x, "]] "}
print "'''#{@given_year}''' "
post = @given_year + 1
post.upto(@given_year.to_i + 5 ) {|x| print "[[", x, "]] "}

print <<EOF;


----

'''Urodzili się :'''
*

'''Zmarli :'''
*

'''Wydarzenia :'''
* w Polsce
**
* na świecie
**
EOF
end
end

if(ARGV[0])
yy = ARGV[0].to_i
else
puts "4"
exit 1
end

year = Year.new(yy)
year.print_all()

Witaj

Uczę się języka hebrajskiego. Tutaj go sobie utrwalam.

Źródło

Zawartość tej strony pochodzi stąd.

Odsyłacze

Generator Margonem

Podziel się