|  | 
 
| qnaqwtwc 初级用户
 
   
 
 
 
 积分 39
 发帖 16
 注册 2008-2-25
 状态 离线
 | 
| 『楼 主』:
 日期转换星期
 
使用 LLM 解释/回答一下 
 
 
任意一个日期将其转换成相应的星期的代码怎么写。
 如:2008/02/26
 转换得到:星期二
 
 
 
 
 |  | 
|  2008-2-26 12:38 |  | 
|  | 
 
| fastslz 铂金会员
 
        DOS一根葱
 
 
 积分 5493
 发帖 2315
 注册 2006-5-1
 来自 上海
 状态 离线
 |  | 
|  2008-2-26 13:13 |  | 
|  | 
 
| abcd 银牌会员
 
      
 
 
 
 积分 1436
 发帖 739
 注册 2007-10-11
 状态 离线
 |  | 
|  2008-2-26 13:36 |  | 
|  | 
 
| qnaqwtwc 初级用户
 
   
 
 
 
 积分 39
 发帖 16
 注册 2008-2-25
 状态 离线
 |  | 
|  2008-2-26 13:40 |  | 
|  | 
 
| fastslz 铂金会员
 
        DOS一根葱
 
 
 积分 5493
 发帖 2315
 注册 2006-5-1
 来自 上海
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
aDate = InputBox("请输入一个日期:", "BY: fastslz",date)
 aWeek = DatePart("w", aDate)
 Select Case aWeek
 Case 1 Wscript.Echo "星期天"
 Case 2 Wscript.Echo "星期一"
 Case 3 Wscript.Echo "星期二"
 Case 4 Wscript.Echo "星期三"
 Case 5 Wscript.Echo "星期四"
 Case 6 Wscript.Echo "星期五"
 Case 7 Wscript.Echo "星期六"
 End Select
 
 
 
 
 
 |  
                  |  第一高手    第二高手
 我的小站
 
  |  | 
|  2008-2-26 13:51 |  | 
|  | 
 
| qnaqwtwc 初级用户
 
   
 
 
 
 积分 39
 发帖 16
 注册 2008-2-25
 状态 离线
 |  | 
|  2008-2-26 14:12 |  | 
|  | 
 
| abcd 银牌会员
 
      
 
 
 
 积分 1436
 发帖 739
 注册 2007-10-11
 状态 离线
 |  | 
|  2008-2-26 14:34 |  | 
|  | 
 
| fastslz 铂金会员
 
        DOS一根葱
 
 
 积分 5493
 发帖 2315
 注册 2006-5-1
 来自 上海
 状态 离线
 | 
|   『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
我不是说了吗,vbs 
这个bat的
 @echo off>tmp.vbs Echo  aDate = InputBox("请输入一个日期:", "BY: fastslz",date)
 >>tmp.vbs Echo  aWeek = DatePart("w", aDate)
 >>tmp.vbs Echo  Select Case aWeek
 >>tmp.vbs Echo      Case 1 Wscript.Echo "星期天"
 >>tmp.vbs Echo      Case 2 Wscript.Echo "星期一"
 >>tmp.vbs Echo      Case 3 Wscript.Echo "星期二"
 >>tmp.vbs Echo      Case 4 Wscript.Echo "星期三"
 >>tmp.vbs Echo      Case 5 Wscript.Echo "星期四"
 >>tmp.vbs Echo      Case 6 Wscript.Echo "星期五"
 >>tmp.vbs Echo      Case 7 Wscript.Echo "星期六"
 >>tmp.vbs Echo  End Select
 for /f "delims=" %%i in ('cscript.exe //nologo tmp.vbs') do set aDate=%%i&del tmp.vbs
 Echo %aDate%
 pause
 
 
 
 
 
 
 |  
                  |  第一高手    第二高手
 我的小站
 
  |  | 
|  2008-2-26 14:36 |  | 
|  | 
 
| qnaqwtwc 初级用户
 
   
 
 
 
 积分 39
 发帖 16
 注册 2008-2-25
 状态 离线
 |  | 
|  2008-2-26 14:37 |  | 
|  | 
 
| plp626 银牌会员
 
      钻石会员
 
 
 积分 2278
 发帖 1020
 注册 2007-11-19
 状态 离线
 | 
|     『第 10 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
bat版本的: @echo off:支持2008年,其他年份算法类似
 :没有容错处理
 :s
 set "mod=145136140250"
 set /p rq=输入:月/日
 for /f "delims=/ tokens=1,2" %%a in ("%rq%") do set d=%%b&call set n=%%mod:~,%%a%%
 set s=%n:~-1%
 set/a w=(%d%+%s%)%%7
 if %w% equ 0 set w=日
 echo 2008/%rq%这一天是:星期%w%&echo.
 goto :s
 
其实关于星期计算有:
基姆拉尔森计算公式 
      W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 
      在公式中d表示日期中的日数+1,m表示月份数,y表示年数 
只是这个算法比上面的算法复杂,代码也长.
 
 Last edited by plp626 on 2008-2-27 at 02:09 PM ]
 
 
 | 此帖被 +8 点积分        点击查看详情 | 评分人:【 abcd 】 | 分数: +8 | 时间:2008-2-27 14:15 | 
 | 
 
 
 
 |  | 
|  2008-2-27 14:05 |  | 
|  | 
 
| senffon 初级用户
 
   
 
 
 
 积分 118
 发帖 66
 注册 2005-10-21
 状态 离线
 | 
| 『第 11 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
@ECHO OFFset /a y = %date:~0,4%
 if %date:~5,1% EQU 0 set /a m = %date:~6,1%
 if %date:~5,1% NEQ 0 set /a m = %date:~5,2%
 if %date:~8,1% EQU 0 set /a d = %date:~9,1%
 if %date:~9,1% NEQ 0 set /a d = %date:~8,2%
 if %m% EQU 1 set /a m = 13
 if %m% EQU 2 set /a m = 14
 
 set /a w = (d + 2*m+3*(m+1)/5+y+y/4-y/100+y/400) - ((d + 2*m+3*(m+1)/5+y+y/4-y/100+y/400)/7)*7 + 1
 set /a yy = (y - 4*(y/4))
 if %m% EQU 13 if %yy% EQU 0 set /a w = w -2
 if %m% EQU 14 if %yy% EQU 0 set /a w = w -2
 if %m% EQU 13 if %yy% NEQ 0 set /a w = w - 1
 if %m% EQU 14 if %yy% NEQ 0 set /a w = w - 1
 if %w% EQU -1 set /a w = 6
 if %w% EQU 0 set /a w = 7
 IF %w% == 6 echo 今天是星期六
 IF %w% == 7 echo 今天是星期天
 pause
 
 
 
 
 |  | 
|  2008-5-11 15:11 |  |