creativewwz 发表于 2011-2-18 15:04:03

如何让日期自动减一 谢谢啦(已解决)

本帖最后由 creativewwz 于 2011-4-22 18:16 编辑

例如,复制内容:2011/02/18 到粘贴板
如何粘贴为:2011/02/17

yhxhappy 发表于 2011-2-18 16:00:37

本帖最后由 yhxhappy 于 2011-2-18 16:32 编辑

简单写了一个,以下代码中,为了防止循环运行会无修止的减1天日期,加了个判断,对比当前剪贴板日期与上一次修改后的日期是否一样,如果不一样就修改,但这样会有个问题:
比如复制了2010/05/04这个日期,自动修改成2010/05/03,便停止修改供用户粘贴,但如果用户此时复制了2010/05/03这个日期,则不会修改

精力有限,留给高人解决吧#include <ClipBoard.au3>
#include <Date.au3>

Global $a

While 1
        $Date = _ClipBoard_GetData()                        ;获取剪贴板内容
        If $a <> $Date And $Date <> 0 Then                                        ;如果剪贴板的内容与上次保存的日期不重复而且获取的内容是字符串则执行以下操作,因为剪贴板有时会有图片之类的数据
                If StringLen($Date) = 10 And StringIsDigit(StringRight($Date, 2)) = 1 Then                ;简单判断字符串长度是不是10,而且字符串最后两个字符是数字
                        $Date = _DateAdd('d', -1, $Date)                        ;将读取到的日期减1天
                        _ClipBoard_Empty()                                                        ;清空剪贴板
                        _ClipBoard_SetData($Date)                                        ;将处理好的字符串放入剪贴板
                        $a = $Date
                EndIf
        EndIf
        Sleep(250)
WEnd


3mile 发表于 2011-2-18 16:02:08

#include <Date.au3>
$sNewDate = _DateAdd( 'd',-1, _NowCalcDate())
MsgBox( 4096, "", "减1天:" & $sNewDate )

lamlp 发表于 2011-2-18 17:29:39

{:face (239):}

mo_shaojie 发表于 2011-2-18 19:02:40

楼主是在哪里复制粘贴啊?
页: [1]
查看完整版本: 如何让日期自动减一 谢谢啦(已解决)