emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] random weekly event


From: Thorsten Jolitz
Subject: Re: [O] random weekly event
Date: Tue, 15 Jul 2014 23:58:47 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Ivan Kanis <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]