![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 16:45 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理版万年历 |
| 可打印版本 16,651 / 44 |
| 第1楼 zjl5 | 发表于 2007-05-26 20:43 |
| 初级用户 发帖 15 积分 82 | |
|
批处理版万年历 ────────── 版主提示 ──────────
完善后的代码请看20楼 qzwqzw 的脚本 ────────── 版主提示 ────────── ::算法:基姆拉尔森计算公式 ::W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 ::在日历里面★=当天 ::还没有加入闰年的计算.所以所有的2月都是28天 [ Last edited by bjsh on 2007-7-31 at 02:36 PM ] |
|
| 第2楼 lxmxn | 发表于 2007-05-26 20:51 |
| 版主 发帖 4,938 积分 11,386 | |
|
不错,加上判断是否闰年的功能就更加完美了。
|
|
| 第3楼 ieutk | 发表于 2007-05-27 14:30 |
| 初级用户 发帖 48 积分 107 | |
|
要是能查到农历就更好啦!哈~
|
|
| 第4楼 qzwqzw | 发表于 2007-05-27 15:12 |
| 银牌会员 发帖 636 积分 2,343 | |
|
试了试
除了2006-12这样的31天月份显示30天之外 其它月份都显示31天 问题出在这句 还需要继续努力啊 |
|
| 第5楼 my3439955 | 发表于 2007-05-27 16:13 |
| 中级用户 发帖 99 积分 272 | |
|
这个日历也不错
http://www.cn-dos.net/forum/viewthread.php?tid=27739&fpage=11 还可以支持任意年包括闰年 http://www.cn-dos.net/forum/viewthread.php?tid=27739&page=2#pid195566 [ Last edited by my3439955 on 2007-5-27 at 04:20 PM ] |
|
| 第6楼 my3439955 | 发表于 2007-05-27 16:23 |
| 中级用户 发帖 99 积分 272 | |
Originally posted by ieutk at 2007-5-27 14:30: 农历没有规则的公式,只能推算出一段时间然后进行查表 不信的话看看那些支持农历的万年历 农历的支持一般不会超过200年 公历的话就没有这个限制 可以到任意年 |
|
| 第7楼 zjl5 | 发表于 2007-05-27 17:45 |
| 初级用户 发帖 15 积分 82 | |
Originally posted by qzwqzw at 2007-5-27 03:12 PM: |
|
| 第8楼 qzwqzw | 发表于 2007-05-27 18:14 |
| 银牌会员 发帖 636 积分 2,343 | |
|
农历这个东西,也许有不查表的办法
听我父亲说,原来家乡有一个二楞子 平时疯疯颠颠的 但唯独掌握一门“神技”十分让人佩服 那就是它可以将古往今来五百年来的老皇历默熟于心 农历大小月以及闰月等问题对他根本不是问题 我未见其人,至今不知道他采用的是什么办法 --------------------------------------------------------- 从理性角度考虑 现如今所使用的农历 虽然是经过多少朝代历次修订而最终成制的 但最终仍然来源于最早的夏历 而夏历的修订和完善主要依赖于天文学的研究成果 除此而外,应该有纯数学的办法可以计算和预期 [ Last edited by qzwqzw on 2007-5-27 at 06:17 PM ] |
|
| 第9楼 zjl5 | 发表于 2007-05-27 19:50 |
| 初级用户 发帖 15 积分 82 | |
|
qzwqzw兄,我把中间的一部分
改成了 效果没有得到太大改善,更大的问题似乎出在for /l %%i in (%w%,1,%cyc%) 我实在想不出.请帮忙改善. |
|
| 第10楼 qzwqzw | 发表于 2007-05-28 00:29 |
| 银牌会员 发帖 636 积分 2,343 | |
|
主要问题在于公式计算的星期顺序和日历显示的星期顺序并不一致
公式计算以星期一起始,星期日结束 日历显示则恰好相反 解决的办法很简单 将公式计算顺序或者日历显示顺序任意调换一个即可 调换公式的星期顺序,只要那句+1移到括号中即可 ------------------------------------ 另外,2006-12月的问题解决 需要再加一行显示,并同时再增加两个变量 ------------------------------------- 其它还有一些问题 比如 if %d% geq 32 中的裸露变量 比如变量 m / d的0前缀问题 再就是变量的命名规范问题 --------------------------------------------- 下面是我的代码 |
|
| 第11楼 zjl5 | 发表于 2007-05-28 00:57 |
| 初级用户 发帖 15 积分 82 | |
|
谢谢,,这样才够完美.
|
|
| 第12楼 namejm | 发表于 2007-06-02 23:38 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
在10楼的基础上,修改了一下,得到如下代码,效果的改变如下:
1、日期数位置固定,星期数序列动态变化; 2、10以内的日期前面不带0; 3、再次输入当天日期的话,会一直显示“今天”而不是“当天”; [ Last edited by namejm on 2007-6-2 at 11:50 PM ] |
|
| 第13楼 qzwqzw | 发表于 2007-06-03 00:07 |
| 银牌会员 发帖 636 积分 2,343 | |
|
这种显示方式并不符合日常习惯
估计很难被人接受 如果不想使用过多的变量 可以使用for将日期顺序输出 只要控制好换行的时机就没有什么问题 另外最好可以控制一下年份的范围和格式 最多只需输入两位年份数 50~99判定为19xx 00~49判定为20xx 计算太远的星期没有太多意义 |
|
| 第14楼 namejm | 发表于 2007-06-03 00:15 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
动态显示星期序列的做法确实是不太合乎习惯,刚才觉得这个很有意思,就拿来改编了一下,呵呵,仅作为一种新效果而推出。
"计算太远的星期没有太多意义" 这句话不知道指的是什么,暂时没有什么过多的想法,若有什么有意思的想法的话,我也想听听^_^。 |
|
| 第15楼 qzwqzw | 发表于 2007-06-03 02:16 |
| 银牌会员 发帖 636 积分 2,343 | |
|
例如以下代码的效果
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |