emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org-habit and hourly repeats
@ 2023-01-18  6:38 Felipe Balbi
  2023-01-19 10:48 ` Ihor Radchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2023-01-18  6:38 UTC (permalink / raw)
  To: emacs-orgmode


Hi,

I'm trying to start using `org-habit' but I noticed that hourly repeats
are not properly parsed by `org-habit-duration-to-days', however that's
a valid use case --- e.g. drinking water, medicine schedule,
physiotherapy sessions during the day, periodically practicing a new
language. For example, here's an easy TODO item that reproduces the
problem:

8< -------------------- cut here --------------------

* TODO Foo
  SCHEDULED: <2023-01-18 Wed 11:00 .+8h>
  :PROPERTIES:
  :STYLE:    habit
  :END:

8< -------------------- cut here --------------------

It appears that a simple solution would be modify
`org-habit-duration-to-days' to accept the `h' suffix and set it to a
fraction of a day, something like:

8< -------------------- cut here --------------------

(defun org-habit-duration-to-days (ts)
  (if (string-match "\\([0-9]+\\)\\([hdwmy]\\)" ts)
      ;; lead time is specified.
      (floor (* (string-to-number (match-string 1 ts))
		(cdr (assoc (match-string 2 ts)
			    '(("h" . 0.042) ("d" . 1)
                              ("w" . 7)     ("m" . 30.4)
                              ("y" . 365.25))))))
    (error "Invalid duration string: %s" ts)))

8< -------------------- cut here --------------------

Would something like this be an acceptable solution?

-- 
balbi


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

* Re: org-habit and hourly repeats
  2023-01-18  6:38 org-habit and hourly repeats Felipe Balbi
@ 2023-01-19 10:48 ` Ihor Radchenko
  2023-01-19 10:58   ` Felipe Balbi
  0 siblings, 1 reply; 6+ messages in thread
From: Ihor Radchenko @ 2023-01-19 10:48 UTC (permalink / raw)
  To: Felipe Balbi; +Cc: emacs-orgmode

Felipe Balbi <balbi@kernel.org> writes:

> I'm trying to start using `org-habit' but I noticed that hourly repeats
> are not properly parsed by `org-habit-duration-to-days', however that's
> a valid use case --- e.g. drinking water, medicine schedule,
> physiotherapy sessions during the day, periodically practicing a new
> language. For example, here's an easy TODO item that reproduces the
> problem:

Habits occurring multiple times a day are not properly supported in
general. See https://list.orgmode.org/orgmode/87leplsggg.fsf@localhost/

> It appears that a simple solution would be modify
> `org-habit-duration-to-days' to accept the `h' suffix and set it to a
> fraction of a day, something like:
>
> 8< -------------------- cut here --------------------
>
> (defun org-habit-duration-to-days (ts)
>   (if (string-match "\\([0-9]+\\)\\([hdwmy]\\)" ts)
>       ;; lead time is specified.
>       (floor (* (string-to-number (match-string 1 ts))
> 		(cdr (assoc (match-string 2 ts)
> 			    '(("h" . 0.042) ("d" . 1)
>                               ("w" . 7)     ("m" . 30.4)
>                               ("y" . 365.25))))))
>     (error "Invalid duration string: %s" ts)))
>
> 8< -------------------- cut here --------------------
>
> Would something like this be an acceptable solution?

I afraid that things are not that simple.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

* Re: org-habit and hourly repeats
  2023-01-19 10:48 ` Ihor Radchenko
@ 2023-01-19 10:58   ` Felipe Balbi
  2023-01-19 11:04     ` Ihor Radchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2023-01-19 10:58 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

Hi,

On Thu, Jan 19, 2023 at 12:47 PM Ihor Radchenko <yantar92@posteo.net> wrote:
>
> Felipe Balbi <balbi@kernel.org> writes:
>
> > I'm trying to start using `org-habit' but I noticed that hourly repeats
> > are not properly parsed by `org-habit-duration-to-days', however that's
> > a valid use case --- e.g. drinking water, medicine schedule,
> > physiotherapy sessions during the day, periodically practicing a new
> > language. For example, here's an easy TODO item that reproduces the
> > problem:
>
> Habits occurring multiple times a day are not properly supported in
> general. See https://list.orgmode.org/orgmode/87leplsggg.fsf@localhost/

That's very interesting, because repeated tasks clearly mention hourly repeats:

https://orgmode.org/manual/Repeated-tasks.html

"You can use yearly, monthly, weekly, daily and hourly repeat cookies by
using the ‘y’, ‘m’, ‘w’, ‘d’ and ‘h’ letters."

>
> > It appears that a simple solution would be modify
> > `org-habit-duration-to-days' to accept the `h' suffix and set it to a
> > fraction of a day, something like:
> >
> > 8< -------------------- cut here --------------------
> >
> > (defun org-habit-duration-to-days (ts)
> >   (if (string-match "\\([0-9]+\\)\\([hdwmy]\\)" ts)
> >       ;; lead time is specified.
> >       (floor (* (string-to-number (match-string 1 ts))
> >               (cdr (assoc (match-string 2 ts)
> >                           '(("h" . 0.042) ("d" . 1)
> >                               ("w" . 7)     ("m" . 30.4)
> >                               ("y" . 365.25))))))
> >     (error "Invalid duration string: %s" ts)))
> >
> > 8< -------------------- cut here --------------------
> >
> > Would something like this be an acceptable solution?
>
> I afraid that things are not that simple.

Do you mind expanding on this? Just generally curious, really.

-- 
balbi


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

* Re: org-habit and hourly repeats
  2023-01-19 10:58   ` Felipe Balbi
@ 2023-01-19 11:04     ` Ihor Radchenko
  2023-01-19 11:06       ` Felipe Balbi
  0 siblings, 1 reply; 6+ messages in thread
From: Ihor Radchenko @ 2023-01-19 11:04 UTC (permalink / raw)
  To: Felipe Balbi; +Cc: emacs-orgmode

Felipe Balbi <balbi@kernel.org> writes:

>> Habits occurring multiple times a day are not properly supported in
>> general. See https://list.orgmode.org/orgmode/87leplsggg.fsf@localhost/
>
> That's very interesting, because repeated tasks clearly mention hourly repeats:
>
> https://orgmode.org/manual/Repeated-tasks.html
>
> "You can use yearly, monthly, weekly, daily and hourly repeat cookies by
> using the ‘y’, ‘m’, ‘w’, ‘d’ and ‘h’ letters."

Repeated tasks do support hourly repeats. But not habits, as long as
habit-specific logic is concerned.

>> I afraid that things are not that simple.
>
> Do you mind expanding on this? Just generally curious, really.

I tried to list some things in
https://list.orgmode.org/orgmode/87leplsggg.fsf@localhost/

For example, habit consistency graph assumes that habits are repeated
every day or longer.

Generally, adding hourly habits will require careful checking of
org-habit.el code. In addition, org-agenda cannot display repeated tasks
when their repeat interval is less than a day (it is a minor annoyance
though; should not be a blocker)

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

* Re: org-habit and hourly repeats
  2023-01-19 11:04     ` Ihor Radchenko
@ 2023-01-19 11:06       ` Felipe Balbi
  2023-01-19 11:13         ` Ihor Radchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2023-01-19 11:06 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

Hi,

On Thu, Jan 19, 2023 at 1:03 PM Ihor Radchenko <yantar92@posteo.net> wrote:
> > That's very interesting, because repeated tasks clearly mention hourly repeats:
> >
> > https://orgmode.org/manual/Repeated-tasks.html
> >
> > "You can use yearly, monthly, weekly, daily and hourly repeat cookies by
> > using the ‘y’, ‘m’, ‘w’, ‘d’ and ‘h’ letters."
>
> Repeated tasks do support hourly repeats. But not habits, as long as
> habit-specific logic is concerned.

Got it :-)

> >> I afraid that things are not that simple.
> >
> > Do you mind expanding on this? Just generally curious, really.
>
> I tried to list some things in
> https://list.orgmode.org/orgmode/87leplsggg.fsf@localhost/
>
> For example, habit consistency graph assumes that habits are repeated
> every day or longer.
>
> Generally, adding hourly habits will require careful checking of
> org-habit.el code. In addition, org-agenda cannot display repeated tasks
> when their repeat interval is less than a day (it is a minor annoyance
> though; should not be a blocker)

Thanks for the links and information. It's unfortunate that it's not supported,
but I guess I can live with it, no problem :-)

cheers

--
balbi


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

* Re: org-habit and hourly repeats
  2023-01-19 11:06       ` Felipe Balbi
@ 2023-01-19 11:13         ` Ihor Radchenko
  0 siblings, 0 replies; 6+ messages in thread
From: Ihor Radchenko @ 2023-01-19 11:13 UTC (permalink / raw)
  To: Felipe Balbi; +Cc: emacs-orgmode

Felipe Balbi <balbi@kernel.org> writes:

> Thanks for the links and information. It's unfortunate that it's not supported,
> but I guess I can live with it, no problem :-)

Patches welcome ;)
Feel free to ask anything if you want to figure out how org-habit code
works.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

end of thread, other threads:[~2023-01-19 11:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-18  6:38 org-habit and hourly repeats Felipe Balbi
2023-01-19 10:48 ` Ihor Radchenko
2023-01-19 10:58   ` Felipe Balbi
2023-01-19 11:04     ` Ihor Radchenko
2023-01-19 11:06       ` Felipe Balbi
2023-01-19 11:13         ` Ihor Radchenko

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