中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-30 06:32
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,278 会员排行
DOS批处理 & 脚本技术(批处理室) » 从日期判断星期
可打印版本  2,801 / 21
第1楼 26933062 发表于 2007-02-06 03:11
银牌会员 发帖 879 积分 2,268
从日期判断星期
比如20060110
如何通过以上日期判断是星期几?
第2楼 namejm 发表于 2007-02-06 03:24
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  提供一个思路:先确定一个已经知道是星期几的日期,然后计算20060110和那个日期相差多少天,然后用差值来除以7,取余数——问题的关键在于计算两个日期的差值,这又转化为以前那个经典老话题:某一日期的N天前是哪一天?
第3楼 26933062 发表于 2007-02-06 05:22
银牌会员 发帖 879 积分 2,268
取得n天前的日期我会,但就是不会计算星期
比如今天是20070205 星期一 n天前的日期是20061210
该怎么计算呢?
20070205减20061210 怎么减呢?
第4楼 everest79 发表于 2007-02-06 08:26
金牌会员 发帖 1,127 积分 2,564
版主说的不错,你首先得有一个参照物,剩下的就是将日期间距转换为10进制的天数并减去7-参照星期,然后再用7除求余
第5楼 redtek 发表于 2007-02-06 09:23
金牌会员 发帖 1,147 积分 2,902
再来一个另类星期几查询:)




  1. @ echo off && setlocal
  2. :: Redtek.2006 bbs.cn-dos.net 查询某年/月/日是星期几



  3. set /p setDate=请输入要查询的日期:(格式:年-月-日)


  4. :: 备份当前日期并设置新日期

  5. for /f %%i in ('date/t') do set "当天日期备份=%%i"
  6. echo %setDate%|date >nul


  7. :: 显示查询日期并恢复当前日期为备份日期

  8. echo. && echo 您要查询的日期详细信息为: %date% ] && echo.
  9. echo %当天日期备份%|date >nul




  10. Pause
Redtek@sweetmeet.com发表于: 2007-02-05 20:26



注: 如果是服务器等与日期相连紧密的计算机请勿使用此代码。

   因实现原理是先备份当前日期,再设置指定日期,利用系统%date%得到星期几,然后再还原计算前的日期。

   在计算机上安装了有些对日期敏感的程序,如:进行Java开发的 JCreator pro 等敏感软件,如果日期被更改为过去时,就是再改回来其已经作废。
第6楼 anqing 发表于 2007-02-06 09:38
高级用户 发帖 413 积分 859
楼上兄,一个字,“赞”
第7楼 zh159 发表于 2007-02-06 14:39
金牌会员 发帖 1,467 积分 3,687
利用刚学会的VBS


加上一个根据 9 楼修改的:


[ Last edited by zh159 on 2007-2-6 at 03:07 PM ]
第8楼 26933062 发表于 2007-02-06 16:29
银牌会员 发帖 879 积分 2,268
5楼的方法确实不错,不过要更改系统时间,似觉总有点不够完美,各位还有什么高招吗?
第9楼 112183883 发表于 2007-02-06 17:55
初级用户 发帖 31 积分 128
何不用VBS呢?
第10楼 NaturalJ0 发表于 2007-02-06 21:16
银牌会员 发帖 533 积分 1,181
记得小时候奥数有个公式的,可以再查下。
第11楼 26933062 发表于 2007-02-08 16:40
银牌会员 发帖 879 积分 2,268
取得两个日期的差已经解决,现在的问题是怎么判断星期?
//比如 已知2007/02/08/星期四 如何确定 18天前的星期呢?
就是如何将当前星期减1或2..........?

[ Last edited by 26933062 on 2007-2-8 at 03:47 AM ]
第12楼 anqing 发表于 2007-02-08 22:01
高级用户 发帖 413 积分 859
帮你顶一下,越来越有难度了
第13楼 zh159 发表于 2007-02-09 05:23
金牌会员 发帖 1,467 积分 3,687
Originally posted by 26933062 at 2007-2-8 03:40:
取得两个日期的差已经解决,现在的问题是怎么判断星期?
//比如 已知2007/02/08/星期四 如何确定 18天前的星期呢?
就是如何将当前星期减1或2..........?

...

第14楼 slore 发表于 2007-02-09 06:00
铂金会员 发帖 2,478 积分 5,212
MsgBox WeekdayName(Weekday(CDate(Now)))
第15楼 zh159 发表于 2007-02-09 06:05
金牌会员 发帖 1,467 积分 3,687
借楼上的:
MsgBox WeekdayName(Weekday(CDate(Now)-18))

+-天数



[ Last edited by zh159 on 2007-2-8 at 06:42 PM ]
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023