RubyLit - Ruby.del.litoral!
uso del Calendario

require "rubygems" 
require "wx" 
include Wx
class Ejemplo < App  
def on_init  
 frameEjemplo = Frame.new(nil, -1, "Ejemplo")

 @cal = CalendarCtrl.new(frameEjemplo, 2,
                 Time.new, 
                 [20,10], 
                 [300,170], 
                 CAL_SHOW_HOLIDAYS)

 StaticText.new(frameEjemplo, 3, "Día", [ 20, 200])
 StaticText.new(frameEjemplo, 4, "Mes", [100, 200])
 StaticText.new(frameEjemplo, 5, "Año", [180, 200])

 @st1 = StaticText.new(frameEjemplo, 6, "--", [ 20, 220])
 @st2 = StaticText.new(frameEjemplo, 7, "--", [100, 220])
 @st3 = StaticText.new(frameEjemplo, 8, "--", [180, 220])

 feriados()
 fecha_seleccionada()

 evt_calendar_month(2) { |event| feriados }
 evt_calendar_year(2) { |event| feriados }
 evt_calendar_sel_changed(2) { |event| fecha_seleccionada }

 frameEjemplo.show()

end

def feriados
 fecha = @cal.get_date 
 if fecha.month  1
     @cal.set_holiday(1)
 elsif fecha.month  4
     @cal.set_holiday(2)
 elsif fecha.month  5
     @cal.set_holiday(1)
     @cal.set_holiday(25)
 elsif fecha.month  6
     @cal.set_holiday(20)
 elsif fecha.month  7
     @cal.set_holiday(9)
 elsif fecha.month  8
     @cal.set_holiday(17)
 elsif fecha.month  10
     @cal.set_holiday(12)
 elsif fecha.month  12
     @cal.set_holiday(8)
     @cal.set_holiday(25)
     @cal.set_holiday(31)
 end
end

def fecha_seleccionada fecha = @cal.get_date @st1.label = sprintf(”%02d”,fecha.day) @st2.label = sprintf(”%02d”,fecha.month) @st3.label = sprintf(”%02d”,fecha.year)
end

end
Ejemplo.new.main_loop


wx2

bajar el código fuente del ejemplo