[已解决]请教如何如何比较二个文件的修改日期的相差数,并修改系统日期加上
本帖最后由 cjfcjf111 于 2012-3-9 23:20 编辑请教如何如何比较二个文件的修改日期的相差数,并修改系统日期加上
比如,比较了二个文件的修改日期相差1天,或2天,则以当前日期为准调整系统日期加上1或2天 比较似乎不难,改不太容易 本帖最后由 cjfcjf111 于 2012-3-2 17:22 编辑
会有这样的事,改个时间好象应该可以的吧.难不成AU3连改时间的功能都这么麻烦,比较我也知道,只是输出的格式如2012-2-20这样的格式,比如还有一个文件修改日期是2012-02-22,这二个日期相差2天,然后怎么才能用这样的格式加上相差的时间来修改系统日期 您 说的偶有点听不懂
多看看帮助吧 至少您先找到 两个码啊
获取文件修改日期的码 有
修改文件修改日期的码 有
对比的话 可能要把数字提出来才行{:1_544:} FileGetTime 可以获取文件的各类日期
#Include <Date.au3>
_SetDate 可以设置系统日期
_SetTime 可以设置系统时间
不然, 楼主, 你想要什么?
难道你是火星来的,好像我们都听不懂你说的?
2
本帖最后由 cjfcjf111 于 2012-3-5 16:02 编辑Local $t1 = FileGetTime(@WindowsDir & "\1.txt")
If Not @error Then
Local $yyyymd1 = $t1 & "/" & $t1 & "/" & $t1 ;获取了第1个文件的修改日期
Local $t2 = FileGetTime(@WindowsDir & "\2.txt")
If Not @error Then
Local $yyyymd2 = $t2 & "/" & $t2 & "/" & $t2 ;获取了第2个文件的修改日期
然后是如何获取2个文件的相差日期比如差了二天,而修改以当前系统日期为基准加上2天,比如2012/03/31 再加上相差的2天而变成2012/04/02呢
关键是如何加减,而加减所得的数值却要合乎年月日的格式,也就是当2月28日时后一天时有时会跳到3月1日,有时又是2月29日,以后的日期同理,而用_SetDate只能在上面的计算准确以后,才能用于修改, 只写到取得新日期,修改文件日期楼主自己写吧#include <Date.au3>
$File1 = FileGetTime(@DesktopDir & "\1.txt", 0);"2012/03/01"
$File2 = FileGetTime(@DesktopDir & "\2.txt", 0)
$DateCalc = _DateDiff("d", $File1 & "/" & $File1 & "/" & $File1, $File2 & "/" & $File2 & "/" & $File2)
If $DateCalc <> 0 Then
$NewDate = _DateAdd("d", $DateCalc, _NowCalcDate())
;$sArray = StringSplit($NewDate, "/") ;将新日期拆分成数组
;$NewFile1Date = $sArray & $sArray & $sArray & $sArray & $File1 & $File1 & $File1 ;文件1叠加天数后的新修改时间
;$NewFile2Date = $sArray & $sArray & $sArray & $sArray & $File2 & $File2 & $File2 ;文件2叠加天数后的新修改时间
MsgBox(0, "误差天数:" & $DateCalc, "当前日期加上误差天数后的新日期:" & @CRLF & $NewDate)
Else
MsgBox(0, "", "时间误差不足1天")
EndIf _DateAdd($sType, $iValToAdd, $sDate) 谢谢yhxhappy ,问题已解决,关键是拆分命令,将日期格式为2012/2/6这样的数字拆分后用 _SetDate进行调整,下面是我重新编过的内容
$NewDate = _DateAdd("d", $DateCalc, _NowCalcDate()) ;计算新的日期并输出格式如2012/2/25状态
$sArray = StringSplit(StringLeft($NewDate, 10), "/") ;拆分新日期左起10个数字以/为单位分隔做为元素
_SetDate($sArray, $sArray, $sArray)
页:
[1]