Re: [O] random weekly event
July, 15 at 23:58 Thorsten Jolitz wrote: > Ivan Kanis writes: > >> 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: Hi Thorsten, Thanks it will get me there when I will write it. I turn off emacs at home and at work so the run-with-timer will not work. Take care, Ivan -- Hard drive sleeping. Let it wake up on it's own... -- BOFH excuse #43
Re: [O] random weekly event
Thorsten Jolitz writes: > ups, should be probably rather this: > > , > | (random-day (+ day (1+ (random (- 7 dow) > ` grrr ... (- 6 dow) of course -- cheers, Thorsten
Re: [O] random weekly event
Thorsten Jolitz writes: > Ivan Kanis writes: > > #+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 ups, should be probably rather this: , | (random-day (+ day (1+ (random (- 7 dow) ` limit is not included, see ,[ C-h f random RET ] | random is a built-in function in `C source code'. | | (random &optional LIMIT) | | Return a pseudo-random number. | All integers representable in Lisp, i.e. between `most-negative-fixnum' | and `most-positive-fixnum', inclusive, are equally likely. | | With positive integer LIMIT, return random number in interval [0,LIMIT). | With argument t, set the random number seed from the current time and pid. | With a string argument, set the seed based on the string's contents. | Other values of LIMIT are ignored. | | See Info node `(elisp)Random Numbers' for more details. | | [back] ` -- cheers, Thorsten
Re: [O] random weekly event
Ivan Kanis 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
[O] random weekly event
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? Ivan -- Repeated reboots of the system failed to solve problem. -- BOFH excuse #20