中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 08:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]批处理版日期查询器。(欢迎大家测试) 查看 975 回复 5
楼 主 [原创]批处理版日期查询器。(欢迎大家测试) 发表于 2008-04-06 16:36 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
注:查询年份从1904年起往后。
@echo off&color 9f&mode con lines=10
title 星期查询器
:set
cls
echo.&echo.&echo.
set var=
set /p var= 请输入要查询的日期(格式为2000年08月08日):
if "%var:~4,1%%var:~7,1%%var:~10,1%"=="年月日" goto year
cls
echo.&echo.&echo.
echo 输入格式不正确!请返回正确输入。&ping /n 3 127.1>nul&goto set
:year
set year=%var:~,4%
set /a str=(%year%-1904)/4&set /a str1=%year%-1904
for /l %%i in (0,1,3) do (
set a=%%i
setlocal enabledelayedexpansion
set /a str2=4*!str!+!a!
if !str1! equ !str2! goto month
)
:month
endlocal
if %a% equ 0 (set /a number1=%str%*1461) else (set /a number1=%str%*1461+%a%*365+1)
if %var:~5,1% equ 0 (set month=%var:~6,1%) else (set month=%var:~5,2%)
set /a month=%month%-1
if %month% equ 0 set /a number2=0&goto day
if %month% equ 1 set /a number2=31&goto day
if %month% equ 2 set /a number2=31+28
if %month% equ 3 set /a number2=31*2+28
if %month% equ 4 set /a number2=31*2+30+28
if %month% equ 5 set /a number2=31*3+30+28
if %month% equ 6 set /a number2=31*3+30*2+28
if %month% equ 7 set /a number2=31*4+30*2+28
if %month% equ 8 set /a number2=31*5+30*2+28
if %month% equ 9 set /a number2=31*5+30*3+28
if %month% equ 10 set /a number2=31*6+30*3+28
if %month% equ 11 set /a number2=31*6+30*4+28
if %a% equ 0 set /a number2=%number2%+1
:day
if %var:~8,1% equ 0 (set day=%var:~9,1%) else (set day=%var:~8,2%)
set /a number3=%day%-1
:week
set /a number=%number1%+%number2%+%number3%
set /a week=%number%/7
for /l %%i in (0,1,6) do (
set b=%%i
setlocal enabledelayedexpansion
set /a str=!week!*7+!b!
if !str! equ !number! goto echo
)
:echo
endlocal
set code=五六天一二三四
set /a move=%b%
cls
echo.&echo.&echo.
call,echo %var%那天是星期%%code:~%move%,1%%
pause>nul
cls
echo.&echo.&echo.
echo 本次查询结束,按键继续,结束请直接关闭窗口。
pause>nul&goto set


[ Last edited by zw19750516 on 2008-4-6 at 04:40 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
plp626 +4 2008-04-07 16:58
批处理之家新域名:www.bathome.net
2 发表于 2008-04-26 13:06 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
真是高手,学习了。
3 发表于 2008-04-30 13:11 ·  中国 广东 东莞 电信
新手上路
积分 16
发帖 8
注册 2006-12-07 00:46
19年会员
UID 72764
性别 男
状态 离线
这东西也能够写出来..

真PF

高手呀
4 发表于 2008-04-30 15:57 ·  中国 上海 上海电信科技发展有限公司(中山南路111号)
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
20年会员
UID 55507
性别 男
来自 重庆
状态 离线
貌似上次也有人發過類似的, 是查詢農歷的, 嘿嘿~~~
5 发表于 2008-04-30 16:29 ·  中国 上海 静安区 电信
初级用户
积分 102
发帖 48
注册 2008-03-18 23:42
18年会员
UID 113352
性别 男
状态 离线
晕 我保存后运行。。。
结果一闪而过 什么显示都没看见
6 发表于 2009-02-14 16:19 ·  中国 重庆 电信
初级用户
★★
积分 92
发帖 82
注册 2007-11-13 23:35
18年会员
UID 102602
性别 男
状态 离线
2008年02月34号也能查到_一个大Bug
论坛跳转: