* calculate weekday of birthday
@ 2017-07-31 13:10 Salome Soedergran
2017-07-31 22:24 ` Adam Porter
2017-07-31 22:26 ` Nick Dokos
0 siblings, 2 replies; 3+ messages in thread
From: Salome Soedergran @ 2017-07-31 13:10 UTC (permalink / raw)
To: emacs-orgmode
Hi everybody
How can I make orgmode to give me the weekday of a specific date?
I have a list (org-table) with students' names and dates of birth that looks like this:
|------+-----------+------+-------+-----+-----+---------|
| Name | Firstname | year | month | day | age | weekday |
|------+-----------+------+-------+-----+-----+---------|
| Doe | John | 2001 | 05 | 21 | 16 | |
|------+-----------+------+-------+-----+-----+---------|
#+TBLFM: @2$8..@>$6='(+ (- 2017 $5) (if(> $4 7) 0 1));L::
I have a formula to make orgtable calculate the age the student reaches in the current academic year (Aug-July) but I don't know how to get the birthday's weekday in the current year. Can anybody help me? Thanks a lot in advance!
Best, Salome
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: calculate weekday of birthday
2017-07-31 13:10 calculate weekday of birthday Salome Soedergran
@ 2017-07-31 22:24 ` Adam Porter
2017-07-31 22:26 ` Nick Dokos
1 sibling, 0 replies; 3+ messages in thread
From: Adam Porter @ 2017-07-31 22:24 UTC (permalink / raw)
To: emacs-orgmode
Hi Salome,
The decode-time function returns a list that includes the day-of-week as
a number from 0-6. You'll have to give it an encoded time, which you
can use encode-time for.
A wild idea would be to use the shell "date" command, which is overkill
for this, but I just happen to have this code handy, in case you or
anyone else might find it useful:
#+BEGIN_SRC elisp
(defmacro call-process-with-args (process &rest args)
"Return results of running PROCESS with ARGS."
(declare (indent defun))
`(with-temp-buffer
(unless (= 0 (call-process ,process nil t nil
,@args))
(user-error ,(concat process " failed")))
(buffer-substring-no-properties (point-min) (point-max))))
(defun get-day-of-week (string)
"Parse STRING with the shell `date' command and return day-of-week as string."
(call-process-with-args
"date" "-d" string "+%a"))
#+END_SRC
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: calculate weekday of birthday
2017-07-31 13:10 calculate weekday of birthday Salome Soedergran
2017-07-31 22:24 ` Adam Porter
@ 2017-07-31 22:26 ` Nick Dokos
1 sibling, 0 replies; 3+ messages in thread
From: Nick Dokos @ 2017-07-31 22:26 UTC (permalink / raw)
To: emacs-orgmode
Salome Soedergran <salome.soedergran@gmx.ch> writes:
> Hi everybody
>
> How can I make orgmode to give me the weekday of a specific date?
> I have a list (org-table) with students' names and dates of birth that looks like this:
> |------+-----------+------+-------+-----+-----+---------|
> | Name | Firstname | year | month | day | age | weekday |
> |------+-----------+------+-------+-----+-----+---------|
> | Doe | John | 2001 | 05 | 21 | 16 | |
> |------+-----------+------+-------+-----+-----+---------|
>
> #+TBLFM: @2$8..@>$6='(+ (- 2017 $5) (if(> $4 7) 0 1));L::
>
> I have a formula to make orgtable calculate the age the student
> reaches in the current academic year (Aug-July) but I don't know how
> to get the birthday's weekday in the current year. Can anybody help
> me? Thanks a lot in advance!
>
> Best, Salome
>
>
,----
| org-day-of-week is a compiled Lisp function in
| ‘../org-mode/lisp/org-clock.el’.
|
| (org-day-of-week DAY MONTH YEAR)
|
| Returns the day of the week as an integer.
`----
You'll have to translate that into a name:
0 = Sunday
...
6 = Saturday
I believe.
--
Nick
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-07-31 22:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-31 13:10 calculate weekday of birthday Salome Soedergran
2017-07-31 22:24 ` Adam Porter
2017-07-31 22:26 ` Nick Dokos
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.