1

我正在尝试创建一个 applescript 脚本,该脚本将采用以下形式的日期:

99 年 2 月 20 日

然后,从日期中减去 5 天,并返回如下日期:

99 年 2 月 15 日

这是我拥有的基本applescript,但显然,我错过了将日期转换为我可以操作的东西(并将其返回为人类可读的东西)的逻辑。

set itemPath to quoted form of POSIX path of theFile

set dateString to do shell script "awk 'NR == 10 {print $3}' " & itemPath & " -"
set myDueDate to dateString - (5 * days)

set theTask to "Pay AMEX bill"

tell application "OmniFocus"
    tell front document
        set theContext to first flattened context where its name = "OFFICE"
        set theProject to first flattened context where its name = "Bookkeeping - PMS"
        tell theProject to make new task with properties {name:theTask, context:theContext, due date:myDueDate}
    end tell
end tell

提前致谢!

4

2 回答 2

1

我认为这些行应该足以满足您的需要:

set dateString to "02/20/99"

set thisDate to date dateString
set fiveDaysEarlier to thisDate - 5 * days
log date string of fiveDaysEarlier
log short date string of fiveDaysEarlier

此页面有更多将字符串转换为日期类对象时支持的强制示例: AppleScript 类参考:日期

此外,这可能是不言而喻的,但字符串“02/20/99”不符合 Y2k 标准,因此必须在某处猜测该日期所在的世纪。

于 2013-03-13T05:56:22.680 回答
0

如果您收到错误消息“FileMaker Pro 出现错误:找不到对象。” 号码-1728,添加我之前的日期。例如,

将 thisDate 设置为我的日期 dateString。

在tell 中工作时,我认为它需要访问tell 范围之外的方法。

于 2016-06-11T02:47:07.317 回答