我有一個setter方法設置一個月。它需要返回一個字符串'01' - '12'。我希望ti能夠獲取數字和文本(包括3個月和全部月份,我正在通過輸入Aug來測試它,但無法使用ti,它將輸入日期設置爲與輸入日期相同(8月)不能讓setter方法工作
的代碼是
def month=(month)
# this can take a number or string, either with 3 char month or full month
# it returns a 2 char string, left padded with 0s
if !month.numeric?
case month.upcase[0,3]
when 'JAN'
month = '01'
when 'FEB'
month = '02'
when 'MAR'
month = '03'
when 'APR'
month = '04'
when 'MAY'
month = '05'
when 'JUN'
month = '06'
when 'JUL'
month = '07'
when 'AUG'
month = '08'
when 'SEP'
month = '09'
when 'OCT'
month = '10'
when 'NOV'
month = '11'
when 'DEC'
month = '12'
else
month = '00'
end
end if
@month=month.rjust(2, '0')
end
而且我與
event.month = "Aug"
p event.month
現在,這裏是真正的怪異位調用它。如果我增加AP線
end if
p month
@month=month.rjust(2, '0')
end
它打印「8月」,但該方法的工作原理,'p event.month'返回'08'剛剛被調用後
任何想法,我做錯了?
本
什麼是「c字符串」? – sawa
一個錯字,只是將其改爲字符串。對不起 –
您是否考慮過使用[Date](https://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/Date.html)來獲取月份名稱?方法更容易,讓操作系統照顧本地化...嘗試'p Date :: ABBR_MONTHNAMES'並使用它代替24行代碼。 – dawg