当前代码打开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'";
答案 0 :(得分: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具有某种查询/排序功能。