标题: [文本处理] [已解决]批处理时间增加N天循环递增 [打印本页]
作者: w1983912 时间: 2011-4-18 17:05 标题: [已解决]批处理时间增加N天循环递增
请问 如何才能获得日期递增呢
递增 这个数字 可以自由修改成自己要的数字 比如 2 9 11啊 这样的
如 :递增6 从地一行指定数字开始 输出300行(可自由修改) 按月的哦 .....一月大 31天 二月按年算有时候是28 有时候是29天
获得 1.TXT:
20100102XXX
20100109XXX
20100116XXX
20100123XXX
20100130XXX
20100206XXX
可能有点复杂 ,望帮忙 谢谢大家
作者: broly 时间: 2011-4-18 18:54
占位,晚上回来给你解决
作者: w1983912 时间: 2011-4-18 20:35
倒。。。。。。。。。我等。。。。。。。。。。。。。
作者: broly 时间: 2011-4-18 23:25
不好意思,今晚回来有点晚- '//保存我为new.vbs,然后运行即可
-
- Dim intDays,intLines,strLast,strOut
- Dim FirstDate,i,outDate,newDate,f
-
- strLast="XXX" '//此处为日期后面的文本后面
- FirstDay=InputBox("请输入第一天,格式为 年-月-日 如"&vbCrLf&"2011-1-1:")
- intDays=InputBox("请输入时间间隔(天):")
- intLines=InputBox("请输入行数:")
-
- intDays=intDays+1
- strOut=FormatDate(FirstDay) & strLast
- newDate=DateAdd("d",intDays,FirstDay)
-
- For i=1 To intLines-1
- strOut=strOut & vbCrLf & FormatDate(newDate) & strLast
- newDate=DateAdd("d",intDays,newDate)
- Next
-
- Set f=CreateObject("scripting.filesystemobject").CreateTextFile("1.txt",True)
- f.Write strOut
- f.Close
- MsgBox "保存在当前目录下1.TXT"
- Set f=Nothing
-
-
- '//定义函数判断日期格式
- Function FormatDate(strDate)
- Dim strYear,strMonth,strDay
- strYear=DatePart("yyyy",strDate)
- strMonth=FormatNum(DatePart("m",strDate))
- strDay=FormatNum(DatePart("d",strDate))
- FormatDate=strYear & strMonth & strDay
- End Function
-
- '//定义过程判断日期格式2
- Function FormatNum(intNum)
- If Len(intNum)=1 Then
- FormatNum="0" & intNum
- Else
- FormatNum=intNum
- End If
- End Function
复制代码
作者: hanyeguxing 时间: 2011-4-18 23:50
本帖最后由 hanyeguxing 于 2011-4-19 08:19 编辑
例如,输入:2011 4 18 5 300- @echo off&setlocal enabledelayedexpansion
- set "name=1.txt"&set/pp=请依次输入开始年 月 日 递增 行数,以空格分隔:
- for /f "tokens=1-5" %%a in ("%p%") do set/a Y=%%a,M=%%b,D=%%c,N=%%d,C=%%e
- (set M_=0%M%&set D_=0%D%&echo !Y!!M_:~-2!!D_:~-2!
- for /l %%a in (2,1,%C%) do (
- set/a D+=N,"K=^!(M-4)|^!(M-6)|^!(M-9)|^!(M-11)","E=^!(M-2)*(28+((^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)))+K*30+(^!^!(M-2)&^!K)*31"
- if !D! gtr !E! (call:a) else set M_=0!M!&set D_=0!D!&echo !Y!!M_:~-2!!D_:~-2!
- ))>"%name%"&exit
- :a:溢出运算
- set/a D-=E,M+=1,"Y+=^!(M-13)","M-=^!(M-13)*12","K=^!(M-4)|^!(M-6)|^!(M-9)|^!(M-11)","E=^!(M-2)*(28+((^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)))+K*30+(^!^!(M-2)&^!K)*31"
- if %D% gtr %E% goto:a
复制代码
作者: w1983912 时间: 2011-4-20 09:22
4# broly
谢谢2位一个是vbs 一个是bat
2楼的朋友 代码 正确无误 vbs
5楼的朋友代码生成的时候少了一行,(2月到3月的, 3月底到4月开始的那行 ) 可能是没经过测试吧? bat的
再次感谢2位
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |