0

年を持たない航空会社の予約システム(Sabre / Galileo / AmadeusなどのGDS)からの日付を変換するためのコンパクトなソリューションを探しています。6月23日を標準の日付にしますが、Rubyで取り組むには年をすばやく決定する必要があります。(FYI-これらのシステムの日付は、今日から最大355日までです。したがって、今日が2012年5月12日であると仮定すると、2012年5月12日ではなく2013年5月12日として12MAYを解釈することにあいまいさはありません)。今日が2012年12月25日で、日付が01JANと入力された場合、これは将来の01JAN2013になり、今日が21JUL 2012の場合、01JANの入力日も今年の過去の日付であるため01JAN2013になります。

だから私は次のようなことをすることができます:

t = DateTime.now
crsdate = DateTime.strptime("23JAN","%d%b")

if crsdate >= t
  # Year is current year
else
  # Year is next year
end

これを行うためのよりエレガントな方法はありますか?

4

1 に答える 1

1

これはどう?

t = DateTime.now
crsdate = DateTime.strptime("23JAN","%d%b")
crsdate >= t ? crsdate >>= 12 : crsdate

crsdateこれを返したいだけで変更する必要がない場合は、>>代わりに を使用し>>=ます。

于 2012-05-11T19:50:17.943 に答える