[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:01911] Re: mhc2palm で最後の月曜日をあつかう
Message-Id: <20040602.135352.71162460.hide@xxxxxxxx>
Date: Wed, 02 Jun 2004 13:53:52 +0900 (JST)
From: KOIE Hidetaka (鯉江英隆) <hide@xxxxxxxx>
Subject: [mhc:01910] Re: mhc2palm で最後の月曜日をあつかう
| | 定期的なミーティングで
| | 月の最後の月曜日
| | というのが追加になったのですが
| | mhc2plamが失敗します。
| |
| | ファイルはこんなかんじです。
| | X-SC-Subject: 会議
| | X-SC-Location:
| | X-SC-Day:
| | X-SC-Time: 10:00-11:00
| | X-SC-Category:
| | X-SC-Priority:
| | X-SC-Cond: last Mon
| | X-SC-Duration: 20040531-
| | X-SC-Alarm:
| |
| | とりあえずのパッチをつくりました。
|
| このパッチで
| CLIE TH55に転送してつかっているのですが
| どうの予定が正しく表示されません。
|
| ためしにPalmから予定を入力すると
| 「曜日指定/毎月最後の月曜日」となるのに
| mhc2palmからのは
| 「曜日指定/毎月」となっているので
| あのパッチではLastの変換がうまくいっていないようです。
パッチを出しなおします。
mhcでLastの予定をpalmの形に変換するときに5thにすると
うまくいくようです。
ちなみに実機で4thを指定しようとすると
palmが4thなのかLastなのかきいてきます。
5thの場合は無条件にLastになってしまいました。
Index: mhc2palm.in
===================================================================
RCS file: /cvsroot/mhc/mhc2palm.in,v
retrieving revision 1.6
diff -u -r1.6 mhc2palm.in
--- mhc2palm.in 13 Sep 2001 05:15:17 -0000 1.6
+++ mhc2palm.in 3 Jun 2004 11:15:47 -0000
@@ -21,7 +21,7 @@
def usage
print '
-usage: mhc2palm [-a | -i] [-n] [-d dev] [-r dir] [YYYYMMDD-yyyymmdd]
+usage: mhc2palm [-a | -i] [-n] [-d dev] [-r dir] [-A mon] [-B mon] [YYYYMMDD-yyyymmdd]
mhc2palm -- Add/Copy mhc articles to a palm.
@@ -35,6 +35,8 @@
default value is /dev/pilot
-r dir : Set repository directory of the mhc.
~/Mail/schedule
+ -A mon : XXX
+ -B mon : XXX
YYYYMMDD-yyyymmdd : set a start and end date of scanning mhc.
if omitted, scan from 3 months ago to
@@ -69,6 +71,7 @@
$flag_verbose = false
$flag_noharm, $flag_append, $flag_install = false, false, false
$flag_device, $flag_from, $flag_to = '/dev/pilot', nil, nil
+$flag_before, $flag_after = -3, 3
$flag_dir = File .expand_path("~/Mail/schedule")
while ARGV .length > 0
@@ -87,6 +90,12 @@
when '-r'
ARGV .shift
$flag_dir = ARGV[0]
+ when '-A'
+ ARGV .shift
+ $flag_after = ARGV[0] . to_i
+ when '-B'
+ ARGV .shift
+ $flag_before = - (ARGV[0] . to_i)
when /^(\d{8})-(\d{8})$/
$flag_from, $flag_to = MhcDate .new($1), MhcDate .new($2)
else
@@ -95,8 +104,9 @@
ARGV .shift
end
-$flag_from = MhcDate .new .m_succ!(-3) if !$flag_from
-$flag_to = MhcDate .new .m_succ!(+3) if !$flag_to
+usage() if ($flag_before >= $flag_after)
+$flag_from = MhcDate .new .m_succ!($flag_before) if !$flag_from
+$flag_to = MhcDate .new .m_succ!($flag_after) if !$flag_to
usage() if !($flag_append || $flag_install) || ($flag_append && $flag_install)
Index: ruby-ext/lib/mhc-date.rb
===================================================================
RCS file: /cvsroot/mhc/ruby-ext/lib/mhc-date.rb,v
retrieving revision 1.6
diff -u -r1.6 mhc-date.rb
--- ruby-ext/lib/mhc-date.rb 12 Jan 2004 10:24:38 -0000 1.6
+++ ruby-ext/lib/mhc-date.rb 3 Jun 2004 11:15:47 -0000
@@ -59,7 +59,7 @@
include Comparable
D_TABLE = [0, 306, 337, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275]
- O_LABEL = %w(1st 2nd 3rd 4th 5th last)
+ O_LABEL = %w(1st 2nd 3rd 4th 5th Last)
M_LABEL = %w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
W_LABEL = %w(Sun Mon Tue Wed Thu Fri Sat)
W_JLABEL = %w(日 月 火 水 木 金 土)
Index: ruby-ext/lib/mhc-palm.rb
===================================================================
RCS file: /cvsroot/mhc/ruby-ext/lib/mhc-palm.rb,v
retrieving revision 1.9
diff -u -r1.9 mhc-palm.rb
--- ruby-ext/lib/mhc-palm.rb 29 Oct 2003 12:48:13 -0000 1.9
+++ ruby-ext/lib/mhc-palm.rb 3 Jun 2004 11:15:47 -0000
@@ -509,15 +509,20 @@
## 01 -- by date
## duration_b - duration_e まで
##
- ## ord .. 0 - 4 の整数 1st, 2nd, 3rd, 4th, Last に対応
+ ## ord .. 0 - 5 の整数 1st, 2nd, 3rd, 4th, 5th, Last に対応
## wek .. 0 - 6 の整数 Sun, ... ,Sat に対応
##
def set_monthly_by_day(beg, fin, freq, ord, wek)
set_duration(beg, fin) ## beg, fin の型チェックもする
set_frequency(freq) ## freq の型チェックもする
+ # 5thはLastを意味する
+ if (ord == 5)
+ ord = 4
+ end
+
## beg の日付が ord, week を満たしているかのチェックが必要
- msg = "Type/ange error: (0< ord <4, 0< wek <6) required. (#{ord}, #{wek})"
+ msg = "Type/Range error: (0< ord <4, 0< wek <6) required. (#{ord}, #{wek})"
raise msg if !(ord .is_a?(Integer) && 0 <= ord && ord <= 4)
raise msg if !(wek .is_a?(Integer) && 0 <= wek && wek <= 6)
raise msg if !((ord == 4 && beg .o_last?) || (ord < 4 && beg .o == ord))
--
鯉江英隆 <hide@xxxxxxxx>