From: Thorsten Jolitz <tjolitz@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: random weekly event
Date: Tue, 15 Jul 2014 23:58:47 +0200 [thread overview]
Message-ID: <87bnsq1dyg.fsf@gmail.com> (raw)
In-Reply-To: 877g3e9yzc.fsf@kanis.fr
Ivan Kanis <ivan@kanis.fr> writes:
> Hi,
>
> I need to have org agenda (and then appt) manage an event once a week.
> The catch is that is should happen at a random day and hour.
>
> My thinking is that populating programmatically a year entry is probably
> the sanest way to go about it.
>
> Has anyone else done it?
This is not an arcane scientific solution, but should give a random
timestamp for between tomorrow and the end of the current week. You
could write a function (using run-with-timer) that runs this sunday at
00:00h and inserts a todo item with the returned timestamp into an
agenda file:
#+begin_src emacs-lisp
(defun tj/return-random-timestamp-this-week ()
"Insert random timestamp for this week."
(interactive)
(let* ((cal-info (decode-time (current-time)))
(dow (nth 6 cal-info))
(year (nth 5 cal-info))
(month (nth 4 cal-info))
(day (nth 3 cal-info))
(hour (nth 2 cal-info))
(random-day (+ day (1+ (random (- 5 dow)))))
(random-hour (random 23))
(random-minute (random 59))
(random-second (random 59)))
(format-time-string "%D %R"
(encode-time random-second
random-minute
random-hour
random-day
month
year))))
#+end_src
#+results:
: tj/return-random-timestamp-this-week
#+begin_src emacs-lisp :results raw
(let (res)
(dotimes (i 10 res)
(setq res (concat
res
(format "%d: %s\n"
(1+ i)
(tj/return-random-timestamp-this-week))))))
#+end_src
#+results:
1: 07/17/14 17:39
2: 07/16/14 18:18
3: 07/18/14 19:21
4: 07/17/14 12:58
5: 07/16/14 15:30
6: 07/16/14 16:17
7: 07/16/14 04:10
8: 07/16/14 21:37
9: 07/17/14 19:22
10: 07/16/14 13:39
--
cheers,
Thorsten
next prev parent reply other threads:[~2014-07-15 21:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-15 19:57 random weekly event Ivan Kanis
2014-07-15 21:58 ` Thorsten Jolitz [this message]
2014-07-15 22:13 ` Thorsten Jolitz
2014-07-15 22:24 ` Thorsten Jolitz
2014-07-16 18:42 ` Ivan Kanis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bnsq1dyg.fsf@gmail.com \
--to=tjolitz@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.