[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 plp626 于 2012-4-3 19:04 编辑

回复 2# terse


没测试;但看上去确实是完美版的 短小精悍;
看了老半天没明白算法思想;
求解释;
计算1900-1-1到指定年份日期之间的天数是如何算的?什么公式?
  1. xm=(m-14)/12               ;1-2月的月份映射为-1;3-12月的月份映射为0
  2. JD=d-2479968               ;常数来历?
  3. +
  4. 1461*(y+4800+xm)/4   ;1461来历?
  5. +
  6. 367*(m-2-xm*12)/12    ; 367来历?
  7. -
  8. 3*(y+4900+xm)/100/4  ;4900 来历?;貌似这里可以精简
复制代码

TOP

本帖最后由 plp626 于 2012-4-13 21:06 编辑

为这个代码,费神不少,彻底搞懂了;
  1. @echo off&setlocal enabledelayedexpansion
  2. set 这天=2012-4-13
  3. set _0=打渔&set _1=晒网
  4. for /f "tokens=1-3 delims=-" %%a in ("%这天%")do set/a y=%%a,m=%%b,d=%%c
  5. set/a "m=(m+9)%%12,y-=m/10+1989,i=(y/4+(m*153+2)/5+d)%%5/3"
  6. set _%i%!
  7. pause
复制代码
算法见:
http://www.bathome.net/thread-16147-1-1.html

TOP

返回列表