[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:01912] Re: mhc2palm で最後の月曜日をあつかう
鯉江さん,パッチありがとうございます.
少し忘れかけているので,
間違っているかもしれませんが.
On Thu, 03 Jun 2004 20:27:18 +0900 (JST),
KOIE Hidetaka (鯉江英隆) <hide@xxxxxxxx> said:
> パッチを出しなおします。
> mhcでLastの予定をpalmの形に変換するときに5thにすると
> うまくいくようです。
>
> ちなみに実機で4thを指定しようとすると
> palmが4thなのかLastなのかきいてきます。
> 5thの場合は無条件にLastになってしまいました。
御存知の通り Palm には 5th というのはなくて,
1st 2nd 3rd 4th Last という選択肢しかないです.
なので,実装としては,mhc-palm.rb 側で 5th を許容して
5th を Last とみなすのではなくて,
mhc-schedule.rb 中にある Palm への変換メソッドで,
5th が入っている article を失敗にする (もしくは last にする)
という処理がいいと思います.
もともとのコードは,そう意図していたのですが,
mhc-schedule.rb 中の
ord = MhcDate::O_LABEL .index(ord_str)
部分がが間違っていますね..
この後に,鯉江さんのコードと同じような
ord が 5 なら 4 に変更する処理を入れるのがいいと思います.
elsif cond_ord .length >= 1 &&
!cond_ord .include?('5th') &&
cond_wek .length >= 1 &&
cond_num .length == 0 &&
cond_mon .length == 0
## monthly by day
cond_ord .each{|ord_str|
cond_wek .each{|wek_str|
ord = MhcDate::O_LABEL .index(ord_str)
wek = MhcDate::W_LABEL .index(wek_str)
sch2 = MhcScheduleItem .new .add_cond(ord_str) .add_cond(wek_str)
beg2 = beg .dup
while !sch2 .occur_on?(beg2) ## xxx 多分これは不要?
beg2 .succ!
end
ret << mk_palm_skel .set_monthly_by_day(beg2, fin, 1, ord, wek)
}
}
ちなみに,逆向きは,ちゃんと考慮しているようです.
(mhc-palm.rb 中では ORDER_TYPE を参照している)
--
nom