Changeset 359

Show
Ignore:
Timestamp:
03/22/07 12:00:40 (2 years ago)
Author:
ogawa
Message:

バージョン番号の更新。
繰り返しイベントのUNTILの処理をより正確に。

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cybozu2ical/trunk/cybozu2ical

    r358 r359  
    1818use Getopt::Long; 
    1919 
    20 our $VERSION = '0.11'; 
     20our $VERSION = '0.12'; 
    2121 
    2222my %opt = (conf => 'config.yaml'); 
     
    6161            ( FREQ => $freq ) : 
    6262            ( FREQ => 'WEEKLY', WKST => 'SU', BYDAY => 'MO,TU,WE,TH,FR' ); 
    63         $rrules{UNTIL} = to_icaldate($item->{until}) if $item->{until}; 
     63        $rrules{UNTIL} = to_icaldate($item->{until}, $item->{is_full_day}) 
     64            if $item->{until}; 
    6465        $args{rrule} = join ';', map { $_ . '=' . $rrules{$_} } keys %rrules; 
    6566    } 
  • cybozu2ical/trunk/lib/WWW/CybozuOffice6/Calendar.pm

    r358 r359  
    1010use Text::CSV_XS; 
    1111 
    12 our $VERSION = '0.01'; 
     12our $VERSION = '0.02'; 
    1313 
    1414sub new { 
     
    110110 
    111111# handle recurrent events 
     112our %FREQUENCY = ( y => 'YEARLY', m => 'MONTHLY', w => 'WEEKLY', 
     113                   d => 'DAILY', n => 'WEEKDAYS' ); 
    112114sub _parse_recurrent_event { 
    113115    my $this = shift; 
     
    121123 
    122124    # frequency 
    123     my %FREQUENCY = ( y => 'YEARLY', m => 'MONTHLY', w => 'WEEKLY', 
    124                       d => 'DAILY', n => 'WEEKDAYS' ); 
    125125    my $freq = $fields[7]; 
    126     if (exists $FREQUENCY{$freq}) { 
     126    if ($freq && exists $FREQUENCY{$freq}) { 
    127127        $item->{frequency} = $FREQUENCY{$freq}; 
    128128        $item->{frequency_value} = $fields[8] || 0; 
    129129        if ($fields[4] =~ m!^(\d+)/(\d+)/(\d+)$!) { 
    130             my $until = $item->{end}->clone->set(year => $1, month => $2, day => $3); 
    131             $until->set_time_zone('UTC'); 
     130            my %args = (year => $1, month => $2, day => $3); 
     131            my $until; 
     132            if ($item->{is_full_day}) { 
     133                $until = $this->to_datetime($fields[4], ':'); 
     134            } else { 
     135                $until = $item->{end}->clone->set(%args); 
     136                $until->set_time_zone('UTC'); # timezone must be UTC 
     137            } 
    132138            $item->{until} = $until; 
    133139        }