找回密码
 加入
搜索
查看: 2229|回复: 7

自动根据当前日期生成昨日文件名的问题

[复制链接]
发表于 2008-11-3 16:01:39 | 显示全部楼层 |阅读模式
程序A每次启动都自动根据当前日期在D盘下生成一个htm文件,比如:2008年11月3日生成的文件名是:_2008年11月02日_早班+晚班.htm(也就是说用的昨天的日期生成的文件名)

现在每天启动的时候我想写个东西自动检测今天程序a有没有运行过,如果没运行过则执行程序a,如果运行过则执行别的程序

请高手说下如何检测这种文件名

[ 本帖最后由 a000000 于 2008-11-11 17:32 编辑 ]
发表于 2008-11-4 11:48:56 | 显示全部楼层
如果对其它不影响的话,将系统时间调前一天,实现最快
发表于 2008-11-4 11:52:04 | 显示全部楼层
同一天启动多此,生成的文件都一样吗?
发表于 2008-11-8 07:15:37 | 显示全部楼层
$Filename = "_"@YEAR &"年" &@MON &"月"& @MDAY-1 & "日"&"_早班+晚班.htm"
用这个格式应该可以得到上一天的文件名,然后判断文件是否存在。
但是我不知道如果你是11月01日的文件,然后DAY-1=0就会变成11月0日,哈哈,这样这个文件就一定不存在了,我也不知道怎么解决了。
发表于 2008-11-10 15:36:26 | 显示全部楼层
发表于 2008-11-10 16:25:46 | 显示全部楼层

$DAY = @MDAY - 1
$MON = @MON + 0
$YEAR = @YEAR
If $DAY = 00 Then
        $MON = @MON - 1
        Switch $MON
                Case 0
                        $YEAR = @YEAR - 1
                        $MON = 12
                        $DAY = 31
                Case 1, 3, 5, 7, 8, 10
                        $DAY = 31
                Case 2
                        $YEAR = @YEAR - 2E3
                        Do
                                $YEAR -= 4
                                If $YEAR = 0 Then $DAY = 29
                                If $YEAR < 0 Then $DAY = 28
                        Until $DAY = 0 Or $DAY < 0
                Case 4, 6, 9, 11
                        $DAY = 30
        EndSwitch
EndIf
If $DAY < 10 Then $DAY = '0' & $DAY
If $MON < 10 Then $MON = '0' & $MON
        
FileWrite('_'&$YEAR&'年'&$MON&'月'&$DAY&'日_早班+晚班.htm', 'TEST')


[ 本帖最后由 liongodmien 于 2008-11-10 20:54 编辑 ]
发表于 2008-11-10 20:25:33 | 显示全部楼层
楼上的如果是2008年1月1日会怎样?

#include <Date.au3>

;makedir('2008-01-01')
makedir(_NowCalcDate())
Func makedir($date, $driver = "d:\");$date可以为yyyy/mm/dd,yyyy-mm-dd,yyyy.mm.dd
        Local $d, $t, $dir
        If Not _DateIsValid($date) Then ;检查日期格式是否有效
                SetError(1)
                Return
        EndIf
        $date=_DateAdd("d",-1,$date);取给定日期的前一天的日期
        _DateTimeSplit($date, $d, $t)
        $dir = StringFormat("_%04d年%02d月%02d日_早班+晚班.htm", $d[1], $d[2], $d[3])
        FileWrite($driver & $dir, "")
EndFunc   ;==>makedir
发表于 2008-11-10 20:57:51 | 显示全部楼层
原帖由 pcbar 于 2008-11-10 20:25 发表
楼上的如果是2008年1月1日会怎样?

#include

;makedir('2008-01-01')
makedir(_NowCalcDate())
Func makedir($date, $driver = "d:\");$date可以为yyyy/mm/dd,yyyy-mm-dd,yyyy.mm.dd
        Local $d, $t, $dir
...

  原来写的时候把条件设错了,谢谢提醒,重新修改了,尽量做到适合LZ要求的条件,由于UDF部分的帮助基本上还没怎么看过,所以不会用日期的UDF,只有自己写了...

[ 本帖最后由 liongodmien 于 2008-11-10 21:42 编辑 ]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 19:31 , Processed in 0.071431 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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