2019-10-17 14:22:53 +0300, Yair Lenga: [...] > Would like to ask that you will consider the following extension to 'date'. > The change will make it easier to perform basic date manipulations in > scripts. > > The request is to add the following 'suffixes' to the date (similar to the > way relative dates are supported): > * EOM - last date of the month > * BOM - beginning of the month > * EOY - last date on the year > * BOY - first date of the year > * prev EOM - last day previous month > * next EOM - last day next month > * prev EOY, next EOY - ditto. > > While all of the constructs can be achieved today, they require multiple > calls to date, with cumbersome formatting. Having those as "built-in" will > make it easier to perform date manipulations. > > Consider getting the number of days in the previous month > Now: > INPUT=2019-02-28 > date +'%d' -d "$(date +'%Y-%m-01' -d "$INPUT") -1day" > Using PREV EOM > date +'%d' -d "$INPUT prev EOM" > > Thank you for taking time to look into this request. Any feedback is [...]
For the record, with the ast-open implementation of date (like the ksh93 date builtin if built as part of ast-open): $ ast-date -d 'this month, yesterday' +%d 30 $ ast-date -d 'final day in last month' +%d 30 $ ast-date -d 'final day in december this year' +%F 2019-12-31 $ ast-date -d '1st day in january' +%F 2019-01-01 See more examples of what it supports at https://github.com/att/ast/blob/ksh93u/src/cmd/tests/date.dat -- Stephane
