明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 革天明

[讨论] 计算星期几

  [复制链接]
发表于 2011-4-26 18:14:45 | 显示全部楼层
回复 zml84 的帖子

计算出来有误,星期的数据是否要调整一下。
另外好像平年、闰年的计算方式不一样
例如:
二十一世纪新前年虫算法(20%4*5=0)
   公式:某日星期几=(百年%4*5天+年+年/4+闰年月星期表+日+2天)%7
                   =(20%4*5天+年+年/4+闰年月星期表+日+2天)%7
   即:  某日星期几=(年+年/4+闰年月星期表+日+2天)%7
发表于 2011-4-27 10:23:20 | 显示全部楼层

貌似程序出错了,今天应该是星期三。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-4-27 10:36:45 | 显示全部楼层
  1. ;;;显示日期、星期几
  2. ;;;zml84 修改后
  3. ;;;pengq2010 2011.04.27 修改("二" "三" "四" "五" "六" "日" "一" )
  4. (defun c:TE (/ tmp y m d lst)
  5.   (setq        tmp (rtos (getvar "cdate") 2 0)
  6.         y   (substr tmp 1 4)
  7.         m   (substr tmp 5 2)
  8.         d   (substr tmp 7 2)
  9.   )
  10.   (setq        tmp (fix (getvar "date"))
  11.         tmp  (rem (1- tmp )7)
  12.         lst '("二" "三" "四" "五" "六" "日" "一" )
  13.         tmp (nth tmp lst)
  14.   )
  15.   (ALERT (STRCAT (strcat "今天是:  " y "年" m "月" d "日")
  16.                  "\n\t星期"
  17.                  tmp
  18.                  "\n\n期待一个好日子,"
  19.                  "\n继续埋首工作里,"
  20.                  "\n期待着下一个假期"
  21.          )
  22.   )
  23. )
发表于 2011-4-27 12:35:04 | 显示全部楼层
本帖最后由 zml84 于 2011-4-27 12:55 编辑

一、10楼帖子已更正,计算应无误。【更正内容为:第10行函数 1- 修改为 1+ 即可】

二、若要以年月日做纯数值计算,请验证下面函数:

;;;=============================================
;|
w = (d + 1 + 2*m + (3*m+3)/5 + y + y/4 - y/100 + y/400) mod 7
: 其中的除法均为整除(向下取整)
: w 为星期数,星期日为 0
: d 为日期数
: m 为月数,  1月2月算作前一年的13月14月
: y 为年数
: 比如 2000年1月1日,d=1, m=13, y=1999,算得 w=6
:      2002年5月17日, d=17, m=5, y=2002, 算得 w=5
|;
;;;=============================================
;;;功能:已知年月日,获取星期几
;;;返回:星期几,0表示星期日。
(defun ZL-GetWeek (yyyy mm dd / tmp)
  (if (<= mm 2)
    (setq mm   (+ mm 12)
          yyyy (1- yyyy)
    )
  )
  (setq        tmp (+ 1
               dd
               (* 2 mm)
               (/ (+ (* 3 mm) 3) 5)
               yyyy
               (/ yyyy 4)
               (/ yyyy -100)
               (/ yyyy 400)
            )
  )
  ;;(print tmp)
  (rem tmp 7)
)
;;;=============================================


三,不得不说,明经论坛lisp代码着色有待大大提高。
发表于 2011-4-27 19:51:52 | 显示全部楼层
本帖最后由 461045462 于 2011-4-27 20:05 编辑

原10楼帖子修改下面语句也行,好像不必修改:1- 修改为 1+
  lst '("二" "三" "四" "五" "六" "日" "一" )

13楼已经修改了,没有注意,不好意思
发表于 2011-4-28 12:00:36 | 显示全部楼层
本帖最后由 pengq2010 于 2011-4-28 12:08 编辑

回复 zml84 的帖子

请教下  data的值是什么值,怎么换算的呢。
发表于 2016-7-12 21:00:38 | 显示全部楼层
pengq2010 发表于 2011-4-27 10:36

没法运行的,是有隐藏的东西么。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 10:38 , Processed in 0.166778 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表