Magnus Holm Skrevet 22. juni 2006 Del Skrevet 22. juni 2006 Siden vi ikke har et Ruby forum her ( ) så poster jeg det under Python, ettersom det er det ligner mest på Jeg har laget en Ruby klasse for generering av kalender. Faktisk har jeg bare gjort om et PHP-script til Ruby Koden: class Calendar def initialize(year = Time.now.year, month = Time.now.month) # Variables @month = month.to_i @year = year.to_i @big_month = [1, 3, 5, 7, 8, 10, 12] @small_month = [4, 6, 9, 11] @special_month = [2] end def change_month(year, month) @year = year @month = month end def start_week return Time.mktime(@year, @month, 1, 0, 0, 0, 0).strftime("%W").to_i end def end_week return Time.mktime(@year, @month, length_of_month, 0, 0, 0, 0).strftime("%W").to_i end def start_day return Time.mktime(@year, @month, 1, 0, 0, 0, 0).strftime("%w").to_i end def get_month(month) return Time.mktime(2000, month, 1, 0, 0, 0, 0).strftime("%A") end def length_of_month if @big_month.include?(@month) return 31 elsif @small_month.include?(@month) return 30 elsif @special_month.include?(@month) return 29 if @year % 4 == 0 return 28 end end def calendar result = [] date = 1 first_line = true weeks = end_week - start_week + 1 weeks.times do |t| week = {:week => start_week + t} days = [] 0.upto(6) do |day| if (day < start_day and first_line == true) or (date > length_of_month) days << "" else days << date date = date + 1 end week[:days] = days end first_line = false result << week end return result end # Sample html-table def html(id = nil) result = "<table id=\"" + id.to_s + "\">\n" result = "<table>\n" if id == nil result << "<tr>\n<td>Week</td>\n\n<th>Sunday</th>\n<th>Monday</th>\n<th>Tuesday</th>\n<th>Wednesday</th>\n<th>Thursday</th>\n<th>Friday</th>\n<th>Saturday</th>\n</tr>\n" cal = calendar cal.each do |week| result << "<tr>\n<th>" + week[:week].to_s + "</th>\n\n" week[:days].each do |day| result << "<td>" + day.to_s + "</td>\n" end result << "</tr>\n" end result << "</table>" return result end end Jeg skal prøve å gjøre så godt jeg kan å forklare hvordan du bruker koden. require 'calendar.rb' # Inkluderer klassen vår (ligger i calendar.rb) cal = Calendar.new # Starter klassen. Tar to parameter: year og month. Hvis du ikke velger noen tar den måneden vi er i days = cal.calendar # Putter kalenderen vår i variablen "days" print cal.html # Eksempel funksjon på kalender Her vil "days" inneholde: [ { :week => 22, :days => ["", "", "", "", 1, 2, 3]}, { :week => 23, :days => [4, 5, 6, 7, 8, 9, 10]}, { :week => 24, :days => [11, 12, 13, 14, 15, 16, 17]}, { :week => 25, :days => [18, 19, 20, 21, 22, 23, 24]}, { :week => 26, :days => [25, 26, 27, 28, 29, 30, ""]} ] Hva syns dere? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå