tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Weekday abbreviations in output of cal(1)
> > I am not 100% sure how to do the job with NetBSD's date(1). I may
> > be just lucky with
> > % date -d '+1 month 1 thu'
> > Thu Aug 6 00:00:00 CEST 2020
> > because today is the 1st of July.
>
> Why wait? Try [...]
Because yesterday was unsuitable to check for the ambiguity how the second
"1" in that expression is actually parsed. Is it parsed as in:
(+1 month 1) thu
as in "go next month, its 1st, forward to Thursday",
or is it:
+1 month (1 thu)
as in "go next month (same day as today, i.e. 2nd NOW), forward 1 thu".
This would skip the weekdays already passed, such as the upcoming
Saturday on Aug 1st. And indeed:
$ date -d '+1 month 1 sat'
Sat Aug 8 00:00:00 CEST 2020
That is: the expression is, alas, *not* good enough to compute the
"first $WEEKDAY of next month". I am at a loss how to do this with
NetBSD's date(1).
This wasn't decidable yesterday, and I wrote:
> > I better recheck this in a fortnight.
because the "Thursday" check, one-shot or ranged as in
> for i in 1 2 3 4 5 6 7 8 9 10
> do
> date -d "+$i month 1 thu"
> done
will not fail immediately but more and more blatantly as we progress
into the month.
Martin Neitzel
PS: The () in the date expressions above are just to illustrate
possible parsings. The actual date command treats "(stuff)" as
a comment.
Home |
Main Index |
Thread Index |
Old Index