本帖最后由 terse 于 2023-3-20 16:13 编辑
纯P
修改关于时间的算法,现在按1970.1.1的时间为基数,之前的可能出错- @echo off&setlocal enabledelayedexpansion
- rem 存为ANSI码
- set /a "Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12"
- set "d=(36525*(y+4716)/100+306001*(m+1)/10000+10%%%%b%%100-2442125)"
- set "s=(10%%d%%100)*3600+(10%%e%%100)*60+(10%%f%%100)"
- set "bs=#"
- for /f "delims=" %%i in (b.txt) do (
- if defined b (
- set bs=!bs!!b!%%i#
- set "b="
- ) else set b=%%i
- )
- for /f "delims=" %%f in ('dir /b /a-d *.txt') do (
- (for /f "usebackq tokens=2,3,5 delims= ,." %%a in ("%%f") do (
- for %%i in ("!a!%%c") do if not "!bs!" == "!bs:#%%~i#=!" (
- if not "!str!" == "%%a%%b" (
- set t=0
- for %%m in ("%%a%%b" "!str!" ) do (
- for /f " tokens=1-6 delims=: " %%a in (%%m) do (
- set /a "m=(%%a+9)%%12+3,y=%%c-m/13"
- if !t! == 0 (
- set /a "t=%d%*86400+%s%"
- ) else set /a "t-=%d%*86400+%s%"
- )
- )
- echo;计算列: !a!%%c 时差间隔: !t!秒
- ) else echo;计算列: !a!%%c 时差间隔: OK
- )
- set "a=%%c"
- set "str=%%a%%b"
- ))>%%f.tmp
- )
- pause
复制代码
|