[cl-date-calc-devel] date iterator extension to iterate

Venkatesan S svtesan at gmail.com
Tue Jan 25 16:48:31 UTC 2011


Hi,

Olof-joachim, iterate-devel: Thanks for the help.

I have written a small driver for iterate which iterates over dates in a
given range. The basic usage is:
(iter (for (y m d) from-date '(2011 1 26) to '(2011 2 27) by 2 skipweekends
nil)
    (format t "~a/~a/~a~%" d m y))

notes:
1) default value for "to"  is today
2) default value for "by" is 1
3) skipweekends if true, skips over weekends


I would like to include this in date-calc package, as I feel it logically
belongs there. Please let me know how to go about this.
I am just learning lisp, and all comments/flames are welcome.

In the iterate driver, I would like to reuse the given variables (y m d)
instead of gensym'ming , but I get a slew of errors, which I am unable to
comprehend.
Instead of:

(defmacro-driver (FOR (y m d) FROM-DATE from-date-spec &optional TO
to-date-spec BY (n 1) SKIP-WEEKENDS (skipval t))
    "Driver for iterating over dates. All dates are in YMD format, ie (YYYY
MM DD)"
    (let ((ty (gensym "TO-YEAR"))
        (tm (gensym "TO-MONTH"))
        (td (gensym "TO-DATE"))
        (fy (gensym "FROM-YEAR"))
        (fm (gensym "FROM-MONTH"))
        (fd (gensym "FROM-DATE"))
 .....
(,kwd ,y next (progn
....
                                  (list ,fy ,fm  ,fd)
....

I would like to use the input yy instead of gensym'ming to hold the current
iteration value like:
(defmacro-driver (FOR (y m d) FROM-DATE from-date-spec &optional TO
to-date-spec BY (n 1) SKIP-WEEKENDS (skipval t))
    "Driver for iterating over dates. All dates are in YMD format, ie (YYYY
MM DD)"
    (let ((ty (gensym "TO-YEAR"))
        (tm (gensym "TO-MONTH"))
        (td (gensym "TO-DATE"))
   .....
(,kwd ,y next (progn
....
                          (list ,y ,m ,d)

Also, any pointers to improve the code are very much appreciated.


Thanks,
Venkatesan

-- 
Audentis fortuna juvat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cl-date-calc-devel/attachments/20110126/88993bb4/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: date-iter.tar.gz
Type: application/x-gzip
Size: 1220 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/cl-date-calc-devel/attachments/20110126/88993bb4/attachment.bin>


More information about the Cl-date-calc-devel mailing list