中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理日历 上一主题 | 下一主题
gne3
高级用户

DOS学徒


积分 526
发帖 252
注册 2007-2-12
状态 离线
『第 16 楼』:  

12楼兄说的,我看的晕乎乎的。呵呵呵

2007-2-21 09:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
mmyy525
初级用户





积分 26
发帖 10
注册 2007-2-22
状态 离线
『第 17 楼』:  

顶一下!

2007-3-5 00:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tyh
初级用户





积分 80
发帖 43
注册 2007-4-21
状态 离线
『第 18 楼』:  

不错.不过没看懂.呵呵

2007-4-24 10:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 19 楼』:  

写得真不错啊。

2007-4-24 10:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
my3439955
中级用户




积分 272
发帖 99
注册 2006-6-2
状态 离线
『第 20 楼』:  

支持楼主增加对任意年份日期查询的功能
相信知道了一年的第一天是星期几的话
这个功能就可以实现了
对于任意的年year
第一天是周几的计算公式为
(year+(year-1)/4-(year-1)/100+(year-1)/400)%7
注意这里的格式"/"为除法,不就余数,"%"为取余操作,只要余数
今年是2007年,那么第一天可计算得到为星期一



X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
2007-4-24 11:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
my3439955
中级用户




积分 272
发帖 99
注册 2006-6-2
状态 离线
『第 21 楼』:  

通过在楼住的代码中新加代码,可以显示不同年份了
除了公元前估计都没有问题
所有改动均在注释之内,其余部分未做改动
@echo off
mode con: lines=12 cols=40
setlocal enabledelayedexpansion
for %%a in (一,二,三,四,五,六,日) do (
set /a a+=1
set j!a!=%%a)

for %%b in (31,28,31,30,31,30,31,31,30,31,30,31) do (
set /a y+=1
set s!y!=%%b)


::::::::::::::::::::::::::::::加入年功能
set /p year=查几年?
cls
set /a year_chk1=year%%400
set /a year_chk2=year%%4
set /a year_chk3=year%%100
if %year_chk1% equ 0 set s2=29
if %year_chk2% equ 0 if %year_chk3% neq 0 set s2=29
::::::::::::::::::::::::::::::加入结束

set /p m=查几月?
cls
set n=%m%
set /a n-=1


for /l %%c in (1,1,%n%) do (
set /a day+=!s%%c!)


set b=0

for /l %%d in (1,1,!day!) do (
set /a b+=1
if !b! equ 8 set b=1)

if %m% equ 1 set b=7



echo     一   二   三   四   五   六   日
echo.
set flag= 一二三四五六日一二三四五六日

:::::::::::::::::::::::::::::::::加入年功能
set /a yearflag=(%year%+(%year%-1)/4-(%year%-1)/100+(%year%-1)/400)%%7
if %yearflag% equ 1 goto endadjust
if %yearflag% equ 0 set yearflag=7
set /a yearflag-=1
set /a yeartemp=0-yearflag
set flag= !flag:~%yeartemp%!一二三四五六日一二三四五六日
set flag=!flag:~0,15!
echo %flag%>C:\ag.txt
:endAdjust
:::::::::::::::::::::::::::::::::加入结束

for /l %%f in (1 1 13) do (

if "!flag:~%%f,1!"=="!j%b%!" (
if "!j%%f!"=="一" (set /p s=     <nul&set zh=6&goto next)
if "!j%%f!"=="二" (set /p s=          <nul&set zh=5&goto next)
if "!j%%f!"=="三" (set /p s=               <nul&set zh=4&goto next)
if "!j%%f!"=="四" (set /p s=                    <nul&set zh=3&goto next)
if "!j%%f!"=="五" (set /p s=                         <nul&set zh=2&goto next)
if "!j%%f!"=="六" (set /p s=                              <nul&set zh=1&goto next)
if "!j%%f!"=="日" (set /p s=<nul&set zh=7&goto next)
))


:next

for /l %%e in (1 1 !s%m%!) do (
set /a b+=1
if !b! equ 8 set b=1
if %%e lss 10 (set /p=    %%e<nul) else (set /p=   %%e<nul)
if !fl!==0 (set /a z+=1)

if !z!==7 (echo.&set z=0)
if %%e==!zh! (echo.
set fl=0
)
)
pause>nul
[ Last edited by my3439955 on 2007-4-24 at 12:39 PM ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 huzixuan 分数: +4  时间:2007-4-26 02:47




X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
2007-4-24 12:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lixiaodong789
新手上路





积分 4
发帖 2
注册 2007-5-4
状态 离线
『第 22 楼』:  

hao

2007-5-4 18:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yeke
初级用户





积分 25
发帖 13
注册 2007-4-10
状态 离线
『第 23 楼』:  

顶你了

2007-5-4 20:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sack
新手上路





积分 8
发帖 3
注册 2007-5-14
状态 离线
『第 24 楼』:  真是高手啊!

我现在才发现我很菜

2007-5-14 04:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: