发表回复 
问题·已解决 如何复制时间粘贴自动增加1分钟?
2017-09-25, 08 : 37 (这个帖子最后修改于: 2017-09-26 09 : 39 by abc001.)
如何复制时间粘贴自动增加1分钟?
如何复制
09-25 08:00
粘贴自动增加1分钟输出为
09-25 08:01
需要考虑类似以下情况如何输出
09-25 08:59
09-25 23:59
另外还要区别于其它复制,如复制文字。
请大家帮帮忙,先谢了。
以下代码只对数字如123有效,对以上时间无效。比如复制123粘贴就变为124了。
代码: (全选)
#c::
Send,^c
var := clipboard
var := var + 1
clipboard := var
Return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-09-25, 15 : 32 (这个帖子最后修改于: 2017-09-25 15 : 41 by TSQJZKIHCVQXSBKA.)
RE: 如何复制时间粘贴自动增加1分钟?
区别于其它复制?
有时间计算,EnvAdd、EnvSub后面跟参数,可按秒分时天加减,年底进到明年都没问题。
代码: (全选)
;格式化时间为14位数字的年月日时分秒:YYYYMMDDHH24MISS

;从当前时间取得年份,年份只是为了满足格式要求,不需要的话写1900也没问题,除非闰年
;删除所有非数字,与年份拼接
;秒数省略则默认为00(FileSetTime中关于YYYYMMDDHH24MISS的解释)
var := SubStr(A_Now, 1, 4) RegExReplace("12-31 23:59", "\D")

;M表示单位为分钟,加1分钟后var为20180101000000
EnvAdd, var, 1, M

FormatTime, 加一分钟后的时间, %var%, MM-dd HH:mm

MsgBox, %加一分钟后的时间%


代码: (全选)
#c::
Send,^c
;还是应该延迟下保险
Sleep, 100
var := "1900" RegExReplace(Clipboard, "\D")
EnvAdd, var, 1, M
FormatTime, Clipboard, %var%, MM-dd HH:mm
Return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢TSQJZKIHCVQXSBKA
2017-09-25, 21 : 32 (这个帖子最后修改于: 2017-09-25 21 : 46 by abc001.)
RE: 如何复制时间粘贴自动增加1分钟?
@TSQJZKIHCVQXSBKA
真是难者不会,会者不难。
困扰我几个月的难题,就这么几句代码就解决了。
真是太感谢了。
只是该如何区分固定时间格式和普通的复制呢?
因为我要用左右键同按来复制,中键粘贴,如果能在复制时自动识别就最好不过了。
比如复制标题“如何复制时间粘贴自动增加1分钟?”
输出结果是01-01 00:01
复制“不需要的话写1900也没问题”
输出结果是当前时间09-25 21:38
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-09-26, 00 : 57
RE: 如何复制时间粘贴自动增加1分钟?
(2017-09-25 21 : 32)abc001 提到:  @TSQJZKIHCVQXSBKA
真是难者不会,会者不难。
困扰我几个月的难题,就这么几句代码就解决了。
真是太感谢了。
只是该如何区分固定时间格式和普通的复制呢?
因为我要用左右键同按来复制,中键粘贴,如果能在复制时自动识别就最好不过了。
比如复制标题“如何复制时间粘贴自动增加1分钟?”
输出结果是01-01 00:01
复制“不需要的话写1900也没问题”
输出结果是当前时间09-25 21:38

还是没看懂自动识别什么,复制标题输出01-01 00:01?依据什么?

我按照“区分固定时间格式和普通的复制”来做吧,判断剪贴板内容是否类似09-25 21:38这种,如果不是,就算普通复制。可你还说输出结果是当前时间,这剪贴板复制的内容放哪儿啊?
代码: (全选)
#c::
Send,^c
;还是应该延迟下保险
Sleep, 100

;如果剪贴板内容有且仅有“01-01 00:01”格式字符串,+1分钟
;\d代表一个数字
;^$分别代表行首行尾,一串字符既位于行首又位于行尾,就只能“正好满一行”,多一个少一个字符都不行
if RegExMatch(Clipboard, "^\d\d-\d\d \d\d:\d\d$")
{
    var := "1900" RegExReplace(Clipboard, "\D")
    EnvAdd, var, 1, M
    FormatTime, Clipboard, %var%, MM-dd HH:mm
}
else
{
    ;普通复制,改剪贴板为当前时间,但原来复制的内容是附加还是不要了?
    FormatTime, Clipboard, %A_Now%, MM-dd HH:mm
}
Return

回复是点“引用”,鼠标悬停出“引用并回复”提示,我也找半天。

另一贴中说收藏功能,“另存为”到本地啊。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢TSQJZKIHCVQXSBKA
2017-09-26, 09 : 30 (这个帖子最后修改于: 2017-09-26 13 : 53 by abc001.)
RE: 如何复制时间粘贴自动增加1分钟?

非常感谢这么快就回复了。
这正是我想要的,只需把这句
FormatTime, Clipboard, %A_Now%, MM-dd HH:mm
改为
Return或者Send,^c
就行了
类似09-25 21:38这种格式就加1分钟。
非这类格式如“这正是我想要的”,或者包含这类格式如“类似09-25 21:38这种格式就加1分钟”这样的就直接复制。
最终结果就是:
代码: (全选)
#c::
Send,^c
;还是应该延迟下保险
Sleep, 100

;如果剪贴板内容有且仅有“01-01 00:01”格式字符串,+1分钟
;\d代表一个数字
;^$分别代表行首行尾,一串字符既位于行首又位于行尾,就只能“正好满一行”,多一个少一个字符都不行
if RegExMatch(Clipboard, "^\d\d-\d\d \d\d:\d\d$")
{
    var := "1900" RegExReplace(Clipboard, "\D")
    EnvAdd, var, 1, M
    FormatTime, Clipboard, %var%, MM-dd HH:mm
}
Return
下一步,我只需将这些代码与左右键同按复制中键粘贴的代码合成到一起就行了,这个我自己应该可以做到了。
再次感谢您的无私帮助,谢谢。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-09-26, 12 : 10
RE: 如何复制时间粘贴自动增加1分钟?
解决就好,else块可以删掉。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-09-26, 13 : 52
RE: 如何复制时间粘贴自动增加1分钟?
(2017-09-26 12 : 10)TSQJZKIHCVQXSBKA 提到:  解决就好,else块可以删掉。

OK,已精简,再次感谢。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合