计算星期几
;;;显示日期;itoa函数将一个【整数】转换成【字符串】,并将该字符串返回
;rtos函数将一个【实数】转换成【字符串】,并将该字符串返回
;atof将一个【字符串】转换成【实数】,并将该字符串返回
;ATOI 字符串转整数
;subcat将多个字符串拼接成一个长字符串后返回
;substr将一个字符串按要求取出其中的字符。
;;;显示日期
(defun c:TE(/ tmp y m d txt1 pt1)
(setq tmp (rtos (getvar "cdate") 2 8)
y (rtos (atof (substr tmp 1 4)) 2 0)
m (rtos (atof (substr tmp 5 2)) 2 0)
d (rtos (atof (substr tmp 7 2)) 2 0)
txt1 (strcat "今天是:" y "年" m "月" d "日")
)
(SETQ M1(ATOI M))
(SETQ D1(ATOI D))
(SETQ YC(ATOI (substr Y 1 2)))
(SETQ YA(ATOI (substr Y 3 2)))
(IF (<= M1 2)
(SETQ YA (+ 1 YA))
(SETQ M1 (+ 12 M1))
)
(SETQ W (-
(+ (/ YC 4) (/ YA 4) YA (ATOI(RTOS(* 2.6 (+ M1 1)))) D1)
(* 2 YC)
1
)
)
;(SETQ TXT2 (STRCAT TXT1 (CHR 13) "今天是星期" W))
;(alert txt2)
(SETQ W1 (- 7 (ATOI(RTOS (/ W 7)))))
(IF (= 0 W1) (SETQ W2 "日"))
(IF (= 1 W1) (SETQ W2 "一"))
(IF (= 2 W1) (SETQ W2 "二"))
(IF (= 3 W1) (SETQ W2 "三"))
(IF (= 4 W1) (SETQ W2 "四"))
(IF (= 5 W1) (SETQ W2 "五"))
(IF (= 6 W1) (SETQ W2 "六"))
(SETQ TXT2 (strcat "今天是星期" W2))
(ALERT (STRCAT TXT1 (CHR 13) TXT2 (CHR 13)"期待一个好日子,"(CHR 13)"继续埋首工作里,"(CHR 13)"期待着下一个假期"))
)
想实现提示今天星期几,可总是参数的类型不对,怎么办? SETQ W那句是蔡勤公式,计算星期几的 本帖最后由 x_s_s_1 于 2011-4-25 14:23 编辑
(menucmd "M=$(edtime,$(getvar,date),DDDD)")
x_s_s_1 发表于 2011-4-25 14:23 static/image/common/back.gif
(menucmd "M=$(edtime,$(getvar,date),DDDD)")
这个可以得到日期,我的麻烦些,可目前是能得到日期,可不能通过日期代入蔡勤公式计算星期几,老是提示数据类型错误。stringgp2 楼主好辛苦 (setq a (menucmd "M=$(edtime,$(getvar,date), YYYY)")
b (menucmd "M=$(edtime,$(getvar,date), MONTH)")
c (menucmd "M=$(edtime,$(getvar,date), D)")
d (menucmd "M=$(edtime,$(getvar,date), DDDD)")
)
(SETQ TXT(STRCAT "今天是" a "年" b c "日" (CHR 13) d (CHR 13)"哥们儿这么累跳槽吧"))
(alert txt) 不错,做得可以。 本帖最后由 mandala 于 2011-4-25 23:08 编辑
顶一下楼主。我有时候非常佩服一些同志,他们会想到用lisp上网、听歌、看书……还要标注今天星期几。我做梦都没想到过要用lisp来干这种事。 我那样写是为了计算星期几的,如果只是显示日期我的是麻烦些,我计算星期的公式没错,设断点也可以,但运行就提示类型错误,请教!
RE: 搞得太复杂!
本帖最后由 zml84 于 2011-4-27 12:47 编辑;;;显示日期、星期几
;;;zml84 修改后
(defun c:TE (/ tmp y m d lst)
(setq tmp (rtos (getvar "cdate") 2 0)
y (substr tmp 1 4)
m (substr tmp 5 2)
d (substr tmp 7 2)
)
(setq tmp (fix (getvar "date"))
tmp(rem (1+tmp )7)
lst '("日" "一" "二" "三" "四" "五" "六")
tmp (nth tmp lst)
)
(ALERT (STRCAT (strcat "今天是:" y "年" m "月" d "日")
"\n\t星期"
tmp
"\n\n期待一个好日子,"
"\n继续埋首工作里,"
"\n期待着下一个假期"
)
)
)
页:
[1]
2