Rdb: Ruby-Nachbau der MWC /rdb-Werkzeuge
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
.TH computedate "" "" "/rdb Command"
|
||||
.PC "Add given number of days to a date"
|
||||
\fBcomputedate \fIdate days\fR
|
||||
.PP
|
||||
.II "date^arithmetic"
|
||||
.II "arithmetic^date"
|
||||
The command
|
||||
.B computedate
|
||||
adds days to a date, and displays the new date.
|
||||
.I date
|
||||
must be the format \fIYYMMDD\fR;
|
||||
.I days
|
||||
can be negative or positive.
|
||||
.B computedate
|
||||
displays the new date in the same format.
|
||||
This is the best format for entering dates in a column
|
||||
because they sort correctly and take only six characters.
|
||||
.PP
|
||||
Internally,
|
||||
.B computedate
|
||||
converts the date to
|
||||
.BR julian ,
|
||||
adds days, then converts the date back to
|
||||
.BR gregorian .
|
||||
Suppose we want to know the date 45 days from March 31, 1989.
|
||||
We can type:
|
||||
.DM
|
||||
computedate 890331 45
|
||||
.DE
|
||||
.PP
|
||||
This command returns the string:
|
||||
.DM
|
||||
890515
|
||||
.DE
|
||||
.PP
|
||||
That is May 15, 1989.
|
||||
.PP
|
||||
Another trick is to combine the
|
||||
.B todaysdate
|
||||
and the
|
||||
.B computedate
|
||||
programs.
|
||||
.B todaysdate
|
||||
gives the date of today in the preferred format of \fIYYMMDD\fR.
|
||||
For example, the following command shows us the date 45 days from today:
|
||||
.DM
|
||||
computedate `todaysdate` 45
|
||||
.DE
|
||||
.SH "Data Validation"
|
||||
You can use
|
||||
.B computedate
|
||||
to validate a date.
|
||||
If you add zero days to a date and get a different date, then
|
||||
the original date was not valid.
|
||||
For example, let's test the 32nd day of January 1989:
|
||||
.DM
|
||||
computedate 890132 0
|
||||
.DE
|
||||
.PP
|
||||
This returns the string
|
||||
.B 890201
|
||||
or February 1, 1989.
|
||||
As we expected, we received a different date.
|
||||
We can test this with the following shell program:
|
||||
.DM
|
||||
if test $DATE = `computedate $DATE 0`
|
||||
then
|
||||
echo OK
|
||||
else
|
||||
echo Invalid DATE
|
||||
fi
|
||||
.DE
|
||||
.SH "See Also"
|
||||
.B
|
||||
gregorian,
|
||||
julian,
|
||||
todaysdate
|
||||
.R
|
||||
Reference in New Issue
Block a user