emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* insert date-stamp for one month
@ 2019-08-18  7:58 Uwe Brauer
  2019-08-18 10:02 ` Thomas Plass
  2019-08-18 10:26 ` insert date-stamp for one month Ken Mankoff
  0 siblings, 2 replies; 7+ messages in thread
From: Uwe Brauer @ 2019-08-18  7:58 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 295 bytes --]


Hi 

I sometimes need to insert a date-stamp which corresponds to one month
in a year, say march 2019. I usually insert 
<2019-03-01 Fri>--<2019-03-31 Sun>, but this is cumbersome to do
manually.

Somebody has a better idea or know how to insert something like <03.2019>

Uwe Brauer

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5025 bytes --]

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

* Re: insert date-stamp for one month
  2019-08-18  7:58 insert date-stamp for one month Uwe Brauer
@ 2019-08-18 10:02 ` Thomas Plass
  2019-08-18 10:21   ` Uwe Brauer
  2019-08-18 14:33   ` [week?] (was: insert date-stamp for one month) Uwe Brauer
  2019-08-18 10:26 ` insert date-stamp for one month Ken Mankoff
  1 sibling, 2 replies; 7+ messages in thread
From: Thomas Plass @ 2019-08-18 10:02 UTC (permalink / raw)
  To: Uwe Brauer; +Cc: emacs-orgmode

Hello,

Uwe Brauer wrote at 09:58 on August 18, 2019:
: I sometimes need to insert a date-stamp which corresponds to one month
: in a year, say march 2019. I usually insert 
: <2019-03-01 Fri>--<2019-03-31 Sun>, but this is cumbersome to do
: manually.

This'll put the computed result on the kill ring.  Beautification and
error checking of input values left as an exercise for the reader.

(defun Brauer/make-month-timerange (year month)
  (interactive
   (list (string-to-int (read-string "Year: " (int-to-string (nth 5 (decode-time)))))
         (string-to-int (read-string "Month: " (int-to-string (nth 4 (decode-time)))))))
  (let* ((last-day (calendar-last-day-of-month month year))
         (start (list 0 0 0 1 month year))
         (end (list 0 0 0 last-day month year))
         (ts (format "<%d-%02d-%02d %s>--<%d-%02d-%02d %s>"
                     year month 1 (format-time-string "%a" (apply #'encode-time start))
                     year month last-day (format-time-string "%a" (apply #'encode-time end)))))
    (message (substitute-command-keys (concat "Use \\[yank] to yank " ts)))
    (kill-new ts)))


Regards

Thomas

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

* Re: insert date-stamp for one month
  2019-08-18 10:02 ` Thomas Plass
@ 2019-08-18 10:21   ` Uwe Brauer
  2019-08-18 14:33   ` [week?] (was: insert date-stamp for one month) Uwe Brauer
  1 sibling, 0 replies; 7+ messages in thread
From: Uwe Brauer @ 2019-08-18 10:21 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1998 bytes --]

>>> "TP" == Thomas Plass <thunk2@arcor.de> writes:

   > Hello,
   > Uwe Brauer wrote at 09:58 on August 18, 2019:
   > : I sometimes need to insert a date-stamp which corresponds to one month
   > : in a year, say march 2019. I usually insert 
   > : <2019-03-01 Fri>--<2019-03-31 Sun>, but this is cumbersome to do
   > : manually.

   > This'll put the computed result on the kill ring.  Beautification and
   > error checking of input values left as an exercise for the reader.

   > (defun Brauer/make-month-timerange (year month)
   >   (interactive
   >    (list (string-to-int (read-string "Year: " (int-to-string (nth 5 (decode-time)))))
   >          (string-to-int (read-string "Month: " (int-to-string (nth 4 (decode-time)))))))
   >   (let* ((last-day (calendar-last-day-of-month month year))
   >          (start (list 0 0 0 1 month year))
   >          (end (list 0 0 0 last-day month year))
   >          (ts (format "<%d-%02d-%02d %s>--<%d-%02d-%02d %s>"
   >                      year month 1 (format-time-string "%a" (apply #'encode-time start))
   >                      year month last-day (format-time-string "%a" (apply #'encode-time end)))))
   >     (message (substitute-command-keys (concat "Use \\[yank] to yank " ts)))
   >     (kill-new ts)))

Very cool, thanks a lot. But why no

(defun Plass/make-month-timerange (year month)
  (interactive
   (list (string-to-int (read-string "Year: " (int-to-string (nth 5 (decode-time)))))
         (string-to-int (read-string "Month: " (int-to-string (nth 4 (decode-time)))))))
  (let* ((last-day (calendar-last-day-of-month month year))
         (start (list 0 0 0 1 month year))
         (end (list 0 0 0 last-day month year))
         (ts (format "<%d-%02d-%02d %s>--<%d-%02d-%02d %s>"
                     year month 1 (format-time-string "%a" (apply #'encode-time start))
                     year month last-day (format-time-string "%a" (apply #'encode-time end)))))
    (insert ts)))

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5025 bytes --]

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

* Re: insert date-stamp for one month
  2019-08-18  7:58 insert date-stamp for one month Uwe Brauer
  2019-08-18 10:02 ` Thomas Plass
@ 2019-08-18 10:26 ` Ken Mankoff
  2019-08-18 10:37   ` Uwe Brauer
  1 sibling, 1 reply; 7+ messages in thread
From: Ken Mankoff @ 2019-08-18 10:26 UTC (permalink / raw)
  To: Uwe Brauer; +Cc: emacs-orgmode

On 2019-08-18 at 03:58 -04, Uwe Brauer <oub@mat.ucm.es> wrote...
> I sometimes need to insert a date-stamp which corresponds to one month
> in a year, say march 2019. I usually insert <2019-03-01
> Fri>--<2019-03-31 Sun>, but this is cumbersome to do manually.
>
> Somebody has a better idea or know how to insert something like <03.2019>

What about picking one day in the month, but only displaying the month?

e.g. https://emacs.stackexchange.com/questions/2243/how-can-i-change-org-mode-time-format-for-one-buffer

https://stackoverflow.com/questions/50233694/org-mode-edit-timestamp-with-custom-format

https://emacs.stackexchange.com/questions/32889/can-the-format-of-a-timestamp-in-an-org-mode-document-be-locally-adjusted-for-ex

  -k.

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

* Re: insert date-stamp for one month
  2019-08-18 10:26 ` insert date-stamp for one month Ken Mankoff
@ 2019-08-18 10:37   ` Uwe Brauer
  0 siblings, 0 replies; 7+ messages in thread
From: Uwe Brauer @ 2019-08-18 10:37 UTC (permalink / raw)
  To: Ken Mankoff; +Cc: Uwe Brauer, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1024 bytes --]

>>> "KM" == Ken Mankoff <mankoff@gmail.com> writes:

   > On 2019-08-18 at 03:58 -04, Uwe Brauer <oub@mat.ucm.es> wrote...
   >> I sometimes need to insert a date-stamp which corresponds to one month
   >> in a year, say march 2019. I usually insert <2019-03-01
   Fri> --<2019-03-31 Sun>, but this is cumbersome to do manually.
   >> 
   >> Somebody has a better idea or know how to insert something like <03.2019>

   > What about picking one day in the month, but only displaying the month?

   > e.g. https://emacs.stackexchange.com/questions/2243/how-can-i-change-org-mode-time-format-for-one-buffer

   > https://stackoverflow.com/questions/50233694/org-mode-edit-timestamp-with-custom-format

   > https://emacs.stackexchange.com/questions/32889/can-the-format-of-a-timestamp-in-an-org-mode-document-be-locally-adjusted-for-ex

Thanks, but this is either buffer or export specific, I want it for some
entries but not for all in my buffer. So Thomas solution, was precisely
what I was looking for.

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5025 bytes --]

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

* [week?] (was: insert date-stamp for one month)
  2019-08-18 10:02 ` Thomas Plass
  2019-08-18 10:21   ` Uwe Brauer
@ 2019-08-18 14:33   ` Uwe Brauer
  2019-08-19 12:29     ` Thomas Plass
  1 sibling, 1 reply; 7+ messages in thread
From: Uwe Brauer @ 2019-08-18 14:33 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1112 bytes --]

>>> "TP" == Thomas Plass <thunk2@arcor.de> writes:
hi 


   > Hello,

I was wondering could that also be done for a week instead of a month

   > (defun Brauer/make-month-timerange (year month)
   >   (interactive
   >    (list (string-to-int (read-string "Year: " (int-to-string (nth 5 (decode-time)))))
   >          (string-to-int (read-string "Month: " (int-to-string (nth 4 (decode-time)))))))
   >   (let* ((last-day (calendar-last-day-of-month month year))
   >          (start (list 0 0 0 1 month year))
   >          (end (list 0 0 0 last-day month year))
   >          (ts (format "<%d-%02d-%02d %s>--<%d-%02d-%02d %s>"
   >                      year month 1 (format-time-string "%a" (apply #'encode-time start))
   >                      year month last-day (format-time-string "%a" (apply #'encode-time end)))))
   >     (message (substitute-command-keys (concat "Use \\[yank] to yank " ts)))
   >     (kill-new ts)))

The problem seems to be that there is no function
calendar-last-day-of-week. I tried to play a little around but it seems difficult.

Anyhow

Uwe Brauer 

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5025 bytes --]

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

* Re: [week?] (was: insert date-stamp for one month)
  2019-08-18 14:33   ` [week?] (was: insert date-stamp for one month) Uwe Brauer
@ 2019-08-19 12:29     ` Thomas Plass
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Plass @ 2019-08-19 12:29 UTC (permalink / raw)
  To: Uwe Brauer; +Cc: emacs-orgmode

Hello,

Uwe Brauer wrote at 16:33 on August 18, 2019:

: The problem seems to be that there is no function
: calendar-last-day-of-week.

Well, there is, it's called `calendar-week-end-day'.

This returns the index into 'calendar-day-name-array.  Note that the
variable 'calendar-week-start-day should be set properly (it defaults
to 0 = $SUNDAY, while I set this to 1, meaning $MONDAY).

This will only get you as far as computing the name of the day.
Computing a date and/or timestamp for an instance of that day name
relative to a date is quite another matter.  The file
calendar/time-date.el might provide useful stuff for doing so.

Thomas

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

end of thread, other threads:[~2019-08-19 12:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-18  7:58 insert date-stamp for one month Uwe Brauer
2019-08-18 10:02 ` Thomas Plass
2019-08-18 10:21   ` Uwe Brauer
2019-08-18 14:33   ` [week?] (was: insert date-stamp for one month) Uwe Brauer
2019-08-19 12:29     ` Thomas Plass
2019-08-18 10:26 ` insert date-stamp for one month Ken Mankoff
2019-08-18 10:37   ` Uwe Brauer

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