Na tej stronie znajduje się kod skryptu użytkowego Wikipedii napisanego w języku programowania Ruby, który wypisuje na standardowe wyjście szablon dekady czyli dziesięciolecia np. Lata 50. XV wieku = 1450-1459 itd

Zobacz też: Tworzenie szablonu roku

Działanie

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

[kpjas@moochca kpjas] $ ruby dekada.rb 1450

Jeśli chcemy zapisać szblon do pliku

[kpjas@moochca kpjas] $ ruby dekada.rb 1450 >Lata_50._XV_wieku.txt


#!/usr/bin/ruby

class Decade

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_decade_str(yy)
arr = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX", "XXI", "XXII", "XXIII "]
ss_year = @start_year.dup; ee_year = @end_year.dup
tmpval = ss_year%100
if(tmpval < 20 )
"Lata #{ss_year}-#{ee_year}"
else
"Lata #{tmpval}-te #{arr[@century]} wieku"
end
end

def gen_decade_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)
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}-te #{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}-te #{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)
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 @start_year, "-", @end_year, "\n"
print "<center>'''", generate_decade_str(@start_year), "'''</center>\n\n"
puts generate_century_str(); print "\n"
print "<center>"; gen_decade_list(@given_year); print "</center>\n\n"

print "Lata : "
@years_arr.each {|x| print x}
print "\n\n----\n"
end
end

if(ARGV[0])
yy = ARGV[0].to_i
else
puts "Trzeba podać jeden argument - rok np. 1921"
exit 1
end

dekada = Decade.new(yy)
dekada.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ę