cjfcjf111 发表于 2012-3-1 22:20:17

[已解决]请教如何如何比较二个文件的修改日期的相差数,并修改系统日期加上

本帖最后由 cjfcjf111 于 2012-3-9 23:20 编辑

请教如何如何比较二个文件的修改日期的相差数,并修改系统日期加上

比如,比较了二个文件的修改日期相差1天,或2天,则以当前日期为准调整系统日期加上1或2天

netegg 发表于 2012-3-2 00:56:01

比较似乎不难,改不太容易

cjfcjf111 发表于 2012-3-2 17:20:02

本帖最后由 cjfcjf111 于 2012-3-2 17:22 编辑

会有这样的事,改个时间好象应该可以的吧.难不成AU3连改时间的功能都这么麻烦,比较我也知道,只是输出的格式如2012-2-20这样的格式,比如还有一个文件修改日期是2012-02-22,这二个日期相差2天,然后怎么才能用这样的格式加上相差的时间来修改系统日期

魔导 发表于 2012-3-3 01:24:16

您 说的偶有点听不懂
多看看帮助吧   至少您先找到   两个码啊
获取文件修改日期的码    有
修改文件修改日期的码    有
对比的话   可能要把数字提出来才行{:1_544:}

user3000 发表于 2012-3-3 03:06:26

FileGetTime 可以获取文件的各类日期
#Include <Date.au3>
_SetDate 可以设置系统日期
_SetTime 可以设置系统时间
不然, 楼主, 你想要什么?
难道你是火星来的,好像我们都听不懂你说的?

cjfcjf111 发表于 2012-3-5 15:51:04

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只能在上面的计算准确以后,才能用于修改,

yhxhappy 发表于 2012-3-5 20:44:32

只写到取得新日期,修改文件日期楼主自己写吧#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

afan 发表于 2012-3-5 20:50:34

_DateAdd($sType, $iValToAdd, $sDate)

cjfcjf111 发表于 2012-3-8 13:18:29

谢谢yhxhappy ,问题已解决,关键是拆分命令,将日期格式为2012/2/6这样的数字拆分后用 _SetDate进行调整,下面是我重新编过的内容

      $NewDate = _DateAdd("d", $DateCalc, _NowCalcDate())    ;计算新的日期并输出格式如2012/2/25状态
      $sArray = StringSplit(StringLeft($NewDate, 10), "/")   ;拆分新日期左起10个数字以/为单位分隔做为元素
      _SetDate($sArray, $sArray, $sArray)
页: [1]
查看完整版本: [已解决]请教如何如何比较二个文件的修改日期的相差数,并修改系统日期加上