找回密码
 加入
搜索
查看: 3494|回复: 4

[效率算法] 如何让日期自动减一 谢谢啦(已解决)

[复制链接]
发表于 2011-2-18 15:04:03 | 显示全部楼层 |阅读模式
本帖最后由 creativewwz 于 2011-4-22 18:16 编辑

例如,复制内容:2011/02/18 到粘贴板
如何粘贴为:2011/02/17
发表于 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

评分

参与人数 1金钱 +20 收起 理由
creativewwz + 20

查看全部评分

发表于 2011-2-18 16:02:08 | 显示全部楼层
#include <Date.au3>
$sNewDate = _DateAdd( 'd',-1, _NowCalcDate())
MsgBox( 4096, "", "减1天:" & $sNewDate )

评分

参与人数 1金钱 +30 收起 理由
creativewwz + 30

查看全部评分

发表于 2011-2-18 17:29:39 | 显示全部楼层
发表于 2011-2-18 19:02:40 | 显示全部楼层
楼主是在哪里复制粘贴啊?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-21 01:15 , Processed in 0.079602 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表