emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Date calculations
@ 2009-12-30 12:47 Fredrik
  2009-12-30 13:08 ` Fredrik
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Fredrik @ 2009-12-30 12:47 UTC (permalink / raw)
  To: emacs-orgmode

I'm using a normal org-file as my contact register so I easier can  
link tasks to a specific person. I have also added events as birthdays  
to each contact but is there some way I can make them show up in the  
agenda with some yearly calculations?

For example a simple birthday reminder can look like this:

* <2006-12-30 ++1y> Happy Birthday!

Is there some clever way I can add a date calculation to it when it  
shows up in the agenda?

* <2006-12-30 ++1y> Happy Birthday %d years!

Regards,

Fredrik

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 12:47 Date calculations Fredrik
@ 2009-12-30 13:08 ` Fredrik
  2009-12-30 13:09 ` Ian Barton
  2009-12-30 13:11 ` Benjamin Andresen
  2 siblings, 0 replies; 16+ messages in thread
From: Fredrik @ 2009-12-30 13:08 UTC (permalink / raw)
  To: emacs-orgmode

Hmm reading a bit more in the manual I found that entries like this  
should work:
%%(diary-anniversary 14  5 1956) Arthur Dent is %d years old

But I can't make in show in my agenda?
The manual also samples this :
%%(org-calendar-holiday)
This works though? So any ideas on how to make the first one work?

Regards,

Fredrik


On 30 dec 2009, at 13.47, Fredrik wrote:

> I'm using a normal org-file as my contact register so I easier can  
> link tasks to a specific person. I have also added events as  
> birthdays to each contact but is there some way I can make them show  
> up in the agenda with some yearly calculations?
>
> For example a simple birthday reminder can look like this:
>
> * <2006-12-30 ++1y> Happy Birthday!
>
> Is there some clever way I can add a date calculation to it when it  
> shows up in the agenda?
>
> * <2006-12-30 ++1y> Happy Birthday %d years!
>
> Regards,
>
> Fredrik
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 12:47 Date calculations Fredrik
  2009-12-30 13:08 ` Fredrik
@ 2009-12-30 13:09 ` Ian Barton
  2009-12-30 13:11 ` Benjamin Andresen
  2 siblings, 0 replies; 16+ messages in thread
From: Ian Barton @ 2009-12-30 13:09 UTC (permalink / raw)
  To: Fredrik; +Cc: emacs-orgmode

Fredrik wrote:
> I'm using a normal org-file as my contact register so I easier can link 
> tasks to a specific person. I have also added events as birthdays to 
> each contact but is there some way I can make them show up in the agenda 
> with some yearly calculations?
> 
> For example a simple birthday reminder can look like this:
> 
> * <2006-12-30 ++1y> Happy Birthday!
> 
> Is there some clever way I can add a date calculation to it when it 
> shows up in the agenda?
> 
> * <2006-12-30 ++1y> Happy Birthday %d years!
> 
> Regards,
> 
You can use diary sexps. Search the manual for "Diary-style sexp 
entries". As an example I have:

%%(diary-anniversary 3  1 2000) Ella is %d years old

in one of my org files.

Ian.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 12:47 Date calculations Fredrik
  2009-12-30 13:08 ` Fredrik
  2009-12-30 13:09 ` Ian Barton
@ 2009-12-30 13:11 ` Benjamin Andresen
  2009-12-30 14:21   ` Benjamin Andresen
  2 siblings, 1 reply; 16+ messages in thread
From: Benjamin Andresen @ 2009-12-30 13:11 UTC (permalink / raw)
  To: emacs-orgmode

Hey,

Fredrik <fredrik@jumans.net> writes:

> I'm using a normal org-file as my contact register so I easier can
> link tasks to a specific person. I have also added events as birthdays
> to each contact but is there some way I can make them show up in the
> agenda with some yearly calculations?
>
> For example a simple birthday reminder can look like this:
>
> * <2006-12-30 ++1y> Happy Birthday!
>
> Is there some clever way I can add a date calculation to it when it
> shows up in the agenda?
>
> * <2006-12-30 ++1y> Happy Birthday %d years!

I used to do it the way it was done in the manual:

(info "(org)Weekly/daily agenda")
under Calendar/Diary integration

     %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old

I now use bbdb which also works good and has gnus integration which is
important to me.


> Regards,
>
> Fredrik

br,
benny

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 13:11 ` Benjamin Andresen
@ 2009-12-30 14:21   ` Benjamin Andresen
  2009-12-30 15:05     ` Memnon Anon
  2009-12-30 15:27     ` Carsten Dominik
  0 siblings, 2 replies; 16+ messages in thread
From: Benjamin Andresen @ 2009-12-30 14:21 UTC (permalink / raw)
  To: emacs-orgmode

Hey,

Benjamin Andresen <benny@in-ulm.de> writes:

> I used to do it the way it was done in the manual:
>
> (info "(org)Weekly/daily agenda")
> under Calendar/Diary integration
>
>      %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old

I can't for the life of me get this to work.

I tried emacs 22.1, 22.3, emacs 23.1 and the current CVS head.

Additionally I tried a few combination of org 5.23a, 4.12a, the newest
git HEAD and others in between. I also changed the value of
`org-agenda-include-diary' and whether or not a ~/diary file existed.
(Zero-length though).

I remember that this worked. But not at the moment.

Does anyone have this working?

br,
benny

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 14:21   ` Benjamin Andresen
@ 2009-12-30 15:05     ` Memnon Anon
  2009-12-30 15:27     ` Carsten Dominik
  1 sibling, 0 replies; 16+ messages in thread
From: Memnon Anon @ 2009-12-30 15:05 UTC (permalink / raw)
  To: emacs-orgmode

Benjamin Andresen <benny@in-ulm.de> writes:

>>      %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old
> I can't for the life of me get this to work.
> I tried emacs 22.1, 22.3, emacs 23.1 and the current CVS head.
[...]
> Does anyone have this working?

Works fine here.

%%(diary-anniversary 10 1 1960) Geburtstag xyz: %d Jahre.

Emacs 23.1.90.1
org 6.33f

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Re: Date calculations
  2009-12-30 14:21   ` Benjamin Andresen
  2009-12-30 15:05     ` Memnon Anon
@ 2009-12-30 15:27     ` Carsten Dominik
  2009-12-30 15:43       ` Benjamin Andresen
  1 sibling, 1 reply; 16+ messages in thread
From: Carsten Dominik @ 2009-12-30 15:27 UTC (permalink / raw)
  To: Benjamin Andresen; +Cc: emacs-orgmode


On Dec 30, 2009, at 3:21 PM, Benjamin Andresen wrote:

> Hey,
>
> Benjamin Andresen <benny@in-ulm.de> writes:
>
>> I used to do it the way it was done in the manual:
>>
>> (info "(org)Weekly/daily agenda")
>> under Calendar/Diary integration
>>
>>     %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old

Hi Benjamin,

currently these lines must be all the way at the left margin, they  
cannot be indented.

- Carsten

>
> I can't for the life of me get this to work.
>
> I tried emacs 22.1, 22.3, emacs 23.1 and the current CVS head.
>
> Additionally I tried a few combination of org 5.23a, 4.12a, the newest
> git HEAD and others in between. I also changed the value of
> `org-agenda-include-diary' and whether or not a ~/diary file existed.
> (Zero-length though).
>
> I remember that this worked. But not at the moment.
>
> Does anyone have this working?
>
> br,
> benny
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 15:27     ` Carsten Dominik
@ 2009-12-30 15:43       ` Benjamin Andresen
  2009-12-30 15:58         ` Memnon Anon
  0 siblings, 1 reply; 16+ messages in thread
From: Benjamin Andresen @ 2009-12-30 15:43 UTC (permalink / raw)
  To: emacs-orgmode

Hey Carsten,

Carsten Dominik <carsten.dominik@gmail.com> writes:

> On Dec 30, 2009, at 3:21 PM, Benjamin Andresen wrote:
>
>> Hey,
>>
>> Benjamin Andresen <benny@in-ulm.de> writes:
>>
>>> I used to do it the way it was done in the manual:
>>>
>>> (info "(org)Weekly/daily agenda")
>>> under Calendar/Diary integration
>>>
>>>     %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old
>
> Hi Benjamin,
>
> currently these lines must be all the way at the left margin, they
> cannot be indented.

I'm sorry for that line, it was ambiguous. I meant to indent it for
clarity, not to represent how it's indented in my file.

I have found the culprit though.

This works:
%%(diary-anniversary 12 30 1984) Arthur Dent is %d years
                     ^   ^   ^
                     M   D   Y
This doesn't:
%%(diary-anniversary 30 12 1984) Arthur Dent is %d years
                     ^   ^   ^
                     D   M   Y

This isn't affected by any locale setting on my end.

I tried en_GB, de_DE and en_US and it will always choose the US M/D/Y
format in the org-mode file. That runs counter to the documentation
example cited above, so does anyone else see that?

>
> - Carsten

br,
benny

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 15:43       ` Benjamin Andresen
@ 2009-12-30 15:58         ` Memnon Anon
  2009-12-30 16:08           ` Benjamin Andresen
  0 siblings, 1 reply; 16+ messages in thread
From: Memnon Anon @ 2009-12-30 15:58 UTC (permalink / raw)
  To: emacs-orgmode

Benjamin Andresen <benny@in-ulm.de> writes:

> This works:
> %%(diary-anniversary 12 30 1984) Arthur Dent is %d years
>                      ^   ^   ^
>                      M   D   Y
> This doesn't:
> %%(diary-anniversary 30 12 1984) Arthur Dent is %d years
>                      ^   ^   ^
>                      D   M   Y

Second one is what I have here and it works as expected.

Probably related to these settings in my .emacs:

(setq european-calendar-style t)      ; obsolete!
(setq calendar-date-style 'european)  ;(info "(emacs)Date Formats")

Do you have these set, too?

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 15:58         ` Memnon Anon
@ 2009-12-30 16:08           ` Benjamin Andresen
  2009-12-30 19:21             ` Carsten Dominik
  0 siblings, 1 reply; 16+ messages in thread
From: Benjamin Andresen @ 2009-12-30 16:08 UTC (permalink / raw)
  To: emacs-orgmode

Memnon Anon <gegendosenfleisch@googlemail.com> writes:

> Probably related to these settings in my .emacs:
>
> (setq european-calendar-style t)      ; obsolete!
> (setq calendar-date-style 'european)  ;(info "(emacs)Date Formats")
>
> Do you have these set, too?

Thanks! If I set it to european, it works.

Should the documentation be changed to the american default? (If it is a
default and not based on the $LANG when emacs is being built.)

br,
benny

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Re: Date calculations
  2009-12-30 16:08           ` Benjamin Andresen
@ 2009-12-30 19:21             ` Carsten Dominik
  2009-12-30 19:51               ` Benjamin Andresen
  2009-12-30 20:37               ` Memnon Anon
  0 siblings, 2 replies; 16+ messages in thread
From: Carsten Dominik @ 2009-12-30 19:21 UTC (permalink / raw)
  To: Benjamin Andresen; +Cc: emacs-orgmode

Hi Benjamin,

can you point out exactly where in the documentation this is located?

Thanks.

- Carsten

P.S.  Emacs calendar is great, but changing function call arguments  
depending on calendar style was a truly braindead decision.....


On Dec 30, 2009, at 5:08 PM, Benjamin Andresen wrote:

> Memnon Anon <gegendosenfleisch@googlemail.com> writes:
>
>> Probably related to these settings in my .emacs:
>>
>> (setq european-calendar-style t)      ; obsolete!
>> (setq calendar-date-style 'european)  ;(info "(emacs)Date Formats")
>>
>> Do you have these set, too?
>
> Thanks! If I set it to european, it works.
>
> Should the documentation be changed to the american default? (If it  
> is a
> default and not based on the $LANG when emacs is being built.)
>
> br,
> benny
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 19:21             ` Carsten Dominik
@ 2009-12-30 19:51               ` Benjamin Andresen
  2009-12-30 22:41                 ` Carsten Dominik
  2009-12-30 20:37               ` Memnon Anon
  1 sibling, 1 reply; 16+ messages in thread
From: Benjamin Andresen @ 2009-12-30 19:51 UTC (permalink / raw)
  To: emacs-orgmode

Hey Carsten,

Carsten Dominik <carsten.dominik@gmail.com> writes:

> Hi Benjamin,
>
> can you point out exactly where in the documentation this is located?

Sure.

org-mode/doc/org.text
Line: 6643

I wouldn't know how to phrase it, but maybe a link to
(info "(emacs)Special Diary Entries") where this behaviour is explained
is the best.

     The entry looks like this:

     %%(diary-anniversary 10 31 1948) Arthur's birthday

     This entry applies to October 31 in any year after 1948; `10 31 1948'
     specifies the date.  (If you are using the European or ISO calendar
     style, the input order of month, day and year is different.)"


> Thanks.
>
> - Carsten
>
> P.S.  Emacs calendar is great, but changing function call arguments
> depending on calendar style was a truly braindead decision.....

I completely agree. Or go all the way with localization and make the
`and' macro short-circuit right to left when you run the elisp in
Israel. ;-)

br,
benny

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 19:21             ` Carsten Dominik
  2009-12-30 19:51               ` Benjamin Andresen
@ 2009-12-30 20:37               ` Memnon Anon
  2009-12-30 22:46                 ` Ben Finney
  2010-01-01 10:32                 ` Carsten Dominik
  1 sibling, 2 replies; 16+ messages in thread
From: Memnon Anon @ 2009-12-30 20:37 UTC (permalink / raw)
  To: emacs-orgmode

Carsten Dominik <carsten.dominik@gmail.com> writes:

> can you point out exactly where in the documentation this is located?

,----[ (info "(org)Weekly/daily agenda") ]
|      * Birthdays and similar stuff
|      #+CATEGORY: Holiday
|      %%(org-calendar-holiday)   ; special function for holiday names
|      #+CATEGORY: Ann
|      %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old
|      %%(diary-anniversary  2 10 1869) Mahatma Gandhi would be %d years old
`----

These examples suggest D-M-Y, which only seems to work with the calendar
set to european style. Maybe, it would be better to change the example
to M-D-Y (I think it is more common?) and add a footnote that provides
the info that the date format is depending on calendar-date-style?

The next paragraph (Anniversaries from BBDB) on the other hand states a 
fixed order.
> Basically, you need to press `C-o anniversary <RET>' with the cursor in
> a BBDB record and then add the date in the format `YYYY-MM-DD', 
> [...]
>     1973-06-22
>     1955-08-02 wedding
>     2008-04-14 %s released version 6.01 of org-mode, %d years ago

So, if I understand it correctly, org-bbdb settled on iso format,
diary-anniversary uses either american or european style depending on
calendar-date-style. 

Thats somehow inconsistent, isn't it?

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Re: Date calculations
  2009-12-30 19:51               ` Benjamin Andresen
@ 2009-12-30 22:41                 ` Carsten Dominik
  0 siblings, 0 replies; 16+ messages in thread
From: Carsten Dominik @ 2009-12-30 22:41 UTC (permalink / raw)
  To: Benjamin Andresen; +Cc: emacs-orgmode


On Dec 30, 2009, at 8:51 PM, Benjamin Andresen wrote:

> Hey Carsten,
>
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>> Hi Benjamin,
>>
>> can you point out exactly where in the documentation this is located?
>
> Sure.
>
> org-mode/doc/org.text
> Line: 6643
>
> I wouldn't know how to phrase it, but maybe a link to
> (info "(emacs)Special Diary Entries") where this behaviour is  
> explained
> is the best.
>
>     The entry looks like this:
>
>     %%(diary-anniversary 10 31 1948) Arthur's birthday
>
>     This entry applies to October 31 in any year after 1948; `10 31  
> 1948'
>     specifies the date.  (If you are using the European or ISO  
> calendar
>     style, the input order of month, day and year is different.)"


Thanks, I have made a note there.


>
>
>> Thanks.
>>
>> - Carsten
>>
>> P.S.  Emacs calendar is great, but changing function call arguments
>> depending on calendar style was a truly braindead decision.....
>
> I completely agree. Or go all the way with localization and make the
> `and' macro short-circuit right to left when you run the elisp in
> Israel. ;-)

yes.  braindead - more braidead - most braindead ... :-)

- Carsten

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Date calculations
  2009-12-30 20:37               ` Memnon Anon
@ 2009-12-30 22:46                 ` Ben Finney
  2010-01-01 10:32                 ` Carsten Dominik
  1 sibling, 0 replies; 16+ messages in thread
From: Ben Finney @ 2009-12-30 22:46 UTC (permalink / raw)
  To: emacs-orgmode

Memnon Anon <gegendosenfleisch@googlemail.com> writes:

> ,----[ (info "(org)Weekly/daily agenda") ]
> |      * Birthdays and similar stuff
> |      #+CATEGORY: Holiday
> |      %%(org-calendar-holiday)   ; special function for holiday names
> |      #+CATEGORY: Ann
> |      %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old
> |      %%(diary-anniversary  2 10 1869) Mahatma Gandhi would be %d years old
> `----
>
> These examples suggest D-M-Y, which only seems to work with the
> calendar set to european style. Maybe, it would be better to change
> the example to M-D-Y (I think it is more common?) and add a footnote
> that provides the info that the date format is depending on
> calendar-date-style?

It might be even better to use calendar style ‘iso’ in that
documentation, to be consistent with default Org usage.

> So, if I understand it correctly, org-bbdb settled on iso format,
> diary-anniversary uses either american or european style depending on
> calendar-date-style.
>
> Thats somehow inconsistent, isn't it?

Yes, that inconsistency in the Diary behaviour has been noted.

-- 
 \       “My business is to teach my aspirations to conform themselves |
  `\              to fact, not to try and make facts harmonise with my |
_o__)                   aspirations.“ —Thomas Henry Huxley, 1860-09-23 |
Ben Finney

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Re: Date calculations
  2009-12-30 20:37               ` Memnon Anon
  2009-12-30 22:46                 ` Ben Finney
@ 2010-01-01 10:32                 ` Carsten Dominik
  1 sibling, 0 replies; 16+ messages in thread
From: Carsten Dominik @ 2010-01-01 10:32 UTC (permalink / raw)
  To: Memnon Anon; +Cc: emacs-orgmode


On Dec 30, 2009, at 9:37 PM, Memnon Anon wrote:

> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>> can you point out exactly where in the documentation this is located?
>
> ,----[ (info "(org)Weekly/daily agenda") ]
> |      * Birthdays and similar stuff
> |      #+CATEGORY: Holiday
> |      %%(org-calendar-holiday)   ; special function for holiday names
> |      #+CATEGORY: Ann
> |      %%(diary-anniversary 14  5 1956) Arthur Dent is %d years old
> |      %%(diary-anniversary  2 10 1869) Mahatma Gandhi would be %d  
> years old
> `----
>
> These examples suggest D-M-Y, which only seems to work with the  
> calendar
> set to european style. Maybe, it would be better to change the example
> to M-D-Y (I think it is more common?) and add a footnote that provides
> the info that the date format is depending on calendar-date-style?
>
> The next paragraph (Anniversaries from BBDB) on the other hand  
> states a
> fixed order.
>> Basically, you need to press `C-o anniversary <RET>' with the  
>> cursor in
>> a BBDB record and then add the date in the format `YYYY-MM-DD',
>> [...]
>>    1973-06-22
>>    1955-08-02 wedding
>>    2008-04-14 %s released version 6.01 of org-mode, %d years ago
>
> So, if I understand it correctly, org-bbdb settled on iso format,
> diary-anniversary uses either american or european style depending on
> calendar-date-style.
>
> Thats somehow inconsistent, isn't it?


Hi Memnon,


Org-mode consistently uses ISO format, I believe.  I chose it  
precisely in order
to make sure there could be no misunderstanding in what these dates  
mean.

I cannot change the behavior of the calendar functions....

- Carsten

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2010-01-01 10:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-30 12:47 Date calculations Fredrik
2009-12-30 13:08 ` Fredrik
2009-12-30 13:09 ` Ian Barton
2009-12-30 13:11 ` Benjamin Andresen
2009-12-30 14:21   ` Benjamin Andresen
2009-12-30 15:05     ` Memnon Anon
2009-12-30 15:27     ` Carsten Dominik
2009-12-30 15:43       ` Benjamin Andresen
2009-12-30 15:58         ` Memnon Anon
2009-12-30 16:08           ` Benjamin Andresen
2009-12-30 19:21             ` Carsten Dominik
2009-12-30 19:51               ` Benjamin Andresen
2009-12-30 22:41                 ` Carsten Dominik
2009-12-30 20:37               ` Memnon Anon
2009-12-30 22:46                 ` Ben Finney
2010-01-01 10:32                 ` Carsten Dominik

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).