emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Last workday of the month
@ 2010-10-30 18:55 Chris Maier
  2010-10-30 20:19 ` Nick Dokos
  0 siblings, 1 reply; 4+ messages in thread
From: Chris Maier @ 2010-10-30 18:55 UTC (permalink / raw)
  To: emacs-orgmode

I'm trying to come up with a sexp diary entry that shows my payday,
which is the last weekday of the month, in my Org agenda.  I've tried
to adapt the example given in the Emacs manual and this is what I came
up with:

%%(let ((month (car date))
        (day (cadr date))
        (dayname (calendar-day-of-week date)))
    (or
     ;; months with 31 days
     (and (memq month '(1 3 5 7 8 10 12))
             (or (and (= day 31)
                      (memq dayname '(1 2 3 4 5)))
                 (and (memq day '(29 30))
                      (= dayname 5))))
     ;; months with 30 days
     (and (memq month '(4 6 9 11))
          (or (and (= day 30)
                   (memq dayname '(1 2 3 4 5)))
              (and (memq day '(28 29))
                   (= dayname 5))))
     ;; February (the weird one)
     (and (= month 2)
          (or (and (memq day '(28 29))
                   (memq dayname '(1 2 3 4 5)))
              (and (memq day '(26 27 28))
                   (= dayname 5)))))) Chris' Paycheck Deposited

It appears to work so far.  However, I'm certain there's got to be a
more concise way of coding this, but I can't seem to find any
pre-existing calendar functions that might help.  Am I missing
something?

To make this even better, is there some way to consult another file of
diary entries containing all the holidays at my workplace, so the
diary entry would show up on the last weekday of the month that is not
a company holiday?

Thanks!

Chris

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-10-31  1:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-30 18:55 Last workday of the month Chris Maier
2010-10-30 20:19 ` Nick Dokos
2010-10-31  0:03   ` Chris Maier
2010-10-31  1:36     ` Chris Maier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).