0

当前代码打开 Outlook 日历数据库,如下所示:

my $outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit');

my $namespace = $outlook->GetNamespace("MAPI");

## only fetch entries from Jan 1, 2007 onwards
my $restrictDates = "[Start] >= '01/01/2007'";  
4

1 回答 1

1

由于您没有显示获取对象日期的代码,因此如果不了解您尝试访问的 Outlook 对象,就无法回答这个问题。

如果您有一组对象,则可以按日期对它们进行排序并在某个对象之前过滤它们。

my $sub = sub {
       my $ad = $a->date_string_accessor;
       my $bd = $b->date_string_accessor;
       $ad =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       $bd =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       return $ad cmp $bd;
};

my @sorted = sort $sub @unsorted;

print join("\n", @sorted);

但在我看来,您应该使用应用程序本身来执行此操作——大概 Outlook 具有某种查询/排序功能。

于 2008-09-17T02:43:12.787 回答