0
我正在尋找一種緊湊的解決方案,用於轉換來自不具備的航空公司預訂系統(GDS,如Sabre/Galileo/Amadeus)的日期這一年 - 例如。 23JUN到標準日期,但需要快速確定一年來在Ruby中加以解決。 (僅供參考 - 在這些系統上的日期只能距離今天最多355天。因此,2012年12月12日假設12MAY作爲2013-05-12而不是2012-05-12)沒有任何歧義。如果今天是2012年12月25日,並且日期輸入爲01JAN,則未來將爲01JAN2013,如果今天是2012年7月21日,則01JAN的輸入日期也將變爲2013年1月1日,因爲它是當年的過去日期。將DDMON(如23JAN)日期格式轉換爲完整日期,並在Ruby中應用正確的年份
所以我可以這樣做:
t = DateTime.now
crsdate = DateTime.strptime("23JAN","%d%b")
if crsdate >= t
# Year is current year
else
# Year is next year
end
是否有這樣做的更優雅的方式?
Activesupport有類似'過去?和未來?'的FWIW。 – steenslag
我知道,但沒有Rails標籤,所以我給了一個純Ruby的答案。 –
感謝Michael和steenslag - 這實際上是2.3.5中實現datanoise webservice api的控制器中代碼的一部分。好奇如何使用過去? - 我仍然是一名鐵桿新手。 – Surge