[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
是不难,故先不做答,期待新人的表现。
***共同提高***

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (1一六 2二五 3三四 4四三 5五二 6六一 0天天) do (
  3.     set "str=%%a"
  4.     set "_!str:~,1!=!str:~1,1!"&set "_!str:~1,1!=!str:~,1!"&set ".!str:~,1!=!str:~2,1!"
  5. )
  6. set /p num=请输入向后的天数:
  7. if %num% lss 0 (set "x=前") else (set "x=后")
  8. if %num% lss -!_%date:~-1%! (set "y=.") else (set "y=_")
  9. set /a d2=num+_%date:~-1%&set "d2=!d2:-=!"
  10. set /a d2=d2%%7
  11. cls&echo.&echo 今天是%date:~-3%,%num:-=%天%x%是星期!%y%%d2%!
  12. pause>nul
复制代码

[ 本帖最后由 batman 于 2008-10-17 11:28 编辑 ]
***共同提高***

TOP

terse就是terse,写出来的代码确实是精炼简洁,不过你这个计算公式实在是有点难懂,
我都看了半天才明白,总觉得没必要写这么复杂的公式,不知兄是否认同?
***共同提高***

TOP

可不可以换个思路呢:
    其实这就是个今天向后几天(这个几天是小于7的)是星期几的问题。假设今天是星期二
,那么往后n个整星期后还是星期二,而7*n+1天后是星期三,7*n+2天后是星期四....7*n+6
天就是星期一,7*n+7=7*(n+1)天后又是星期二了。所以,我解题的思路是今天是星期几如
星期五那就是从星期一向后了5天,于是向后n天便从星期一开始推算:(n+5)%%7,如余数
是0就是星期一,余数为1就是星期二.....以此类推。
    当然向前就是先将星期天向前反推2天(同样是以星期五为例),然后再将反推的总天数
减去2天,公式是一样的,只是在向前天数小于5(星期数)时,一样可以用正推的方法算。
***共同提高***

TOP

返回列表