emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* 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 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).