[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