Days: Difference between revisions
(edit) |
No edit summary |
||
Line 3: | Line 3: | ||
'''DAYS''' returns the absolute, sequential value which is assigned to dates after January 1, 1900. | '''DAYS''' returns the absolute, sequential value which is assigned to dates after January 1, 1900. | ||
[[BaseYear]] is used to determine the century for a date if the format specification used does not specify a century. See "BaseYear" in the [[BRConfig.sys]] specifications section for complete information. | |||
===Comments and Examples=== | ===Comments and Examples=== | ||
The Days function returns the specified date as a sequential value in relation to a base date of January 1, 1900. As an example of using this parameter for date arithmetic, line 300 would print "PAST DUE" if the date of an invoice '''IDATE''' is over 30 days from the current date. | |||
The Days function returns the specified date as a sequential value in relation to a base date of January 1, 1900. | |||
00030 IF Days(DATE)>Days(IDATE)+30 THEN PRINT "Past Due" | 00030 IF Days(DATE)>Days(IDATE)+30 THEN PRINT "Past Due" | ||
Line 15: | Line 13: | ||
The DAYS function can now be used to store and perform date arithmetic on dates beginning with year 1700. Negative numbers are used to denote such dates. | The DAYS function can now be used to store and perform date arithmetic on dates beginning with year 1700. Negative numbers are used to denote such dates. | ||
Notice that the number of days in a month, leap year, etc. do not have to be coded in your program because they are built into this function. | Notice that the number of days in a month, leap year, etc. do not have to be coded in your program because they are built into this function. | ||
If the numeric date parameter is invalid, the Days function will return zero. Therefore, the Days function can also be used to check the validity of dates entered from the keyboard. For example, | If the numeric date parameter is invalid, the Days function will return zero. Therefore, the Days function can also be used to check the validity of dates entered from the keyboard. For example, | ||
00010 LET DATE$("*y/m/d") ! be sure default format is year/month/day | 00010 LET DATE$("*y/m/d") ! be sure default format is year/month/day | ||
00020 LET M$="14" | 00020 LET M$="14" ! month is invalid | ||
00030 LET D$="31" | 00030 LET D$="31" | ||
00040 LET Y$="88" | 00040 LET Y$="88" | ||
00050 LET D=VAL(Y$&M$&D$) ! D = 881431 | 00050 LET D=VAL(Y$&M$&D$) ! D = 881431 | ||
00060 PRINT Days(D) | 00060 PRINT Days(D) ! invalid date = 0 | ||
00070 LET M$="12" | 00070 LET M$="12" ! month is valid | ||
00080 LET D=VAL(Y$&M$&D$) ! D = 881231 | 00080 LET D=VAL(Y$&M$&D$) ! D = 881231 | ||
00090 PRINT Days(D) | 00090 PRINT Days(D) ! valid date = 32507 | ||
00095 LET DATE$("*m/d/y") ! change default format to month/day/year | 00095 LET DATE$("*m/d/y") ! change default format to month/day/year | ||
00096 PRINT Days(D) | 00096 PRINT Days(D) ! invalid date = 0 (does not fit format) | ||
The value of D in line 96 is invalid because line 95 changes the default format for dates (note the * at the start of the date string). The optional second parameter of the Days function can be used to temporarily change the date format. Line 97 will print a nonzero value because the date is valid in the format specified in the optional string parameter. | The value of D in line 96 is invalid because line 95 changes the default format for dates (note the * at the start of the date string). The optional second parameter of the Days function can be used to temporarily change the date format. Line 97 will print a nonzero value because the date is valid in the format specified in the optional string parameter. | ||
00097 PRINT Days(D,"y/m/d") ! valid date = 32507 | 00097 PRINT Days(D,"y/m/d") ! valid date = 32507 | ||
00098 PRINT Days(D) ! invalid date = 0 (does not fit format specified in line 95) | 00098 PRINT Days(D) ! invalid date = 0 (does not fit format specified in line 95) | ||
Line 98 returns zero because the format in line 97 only applies to that one function call. Since there is no asterisk in the date string, line 97 does not change the default date format, whereas line 95 does. | Line 98 returns zero because the format in line 97 only applies to that one function call. Since there is no asterisk in the date string, line 97 does not change the default date format, whereas line 95 does. | ||
Line 41: | Line 40: | ||
The "date" parameter is a numeric expression that represents the date for which the number of days should be calculated. If "date" is not valid according to the current default format, Days will return 0. | The "date" parameter is a numeric expression that represents the date for which the number of days should be calculated. If "date" is not valid according to the current default format, Days will return 0. | ||
The optional "format$" parameter is a string expression which identifies the format of the value to be returned. When the first character of the string expression includes an asterisk (*), it identifies the default format which should be used by the Date, Date$ and Days parameters until the workstation exits Business Rules or until the format is changed again. | The optional "format$" parameter is a string expression which identifies the format of the value to be returned. When the first character of the string expression includes an asterisk (*), it identifies the default format which should be used by the Date, Date$ and Days parameters until the workstation exits Business Rules or until the format is changed again. Format changes affect the current workstation only. | ||
The format$ parameter may include | The format$ parameter may include separating characters and any of the following date specifications: D (day), M (month), Y (year) or C (century). The total number of separating characters and date specifications may not exceed 6. Consecutive repetitions (DDD, YY, etc.) of the date specifications count as just one specification, but consecutive repetitions of separating characters do not use this rule. See the Date$ function for additional information about format$. | ||
===Related Functions=== | ===Related Functions=== |
Revision as of 10:04, 24 January 2012
DAYS (date[,format$])
DAYS returns the absolute, sequential value which is assigned to dates after January 1, 1900.
BaseYear is used to determine the century for a date if the format specification used does not specify a century. See "BaseYear" in the BRConfig.sys specifications section for complete information.
Comments and Examples
The Days function returns the specified date as a sequential value in relation to a base date of January 1, 1900. As an example of using this parameter for date arithmetic, line 300 would print "PAST DUE" if the date of an invoice IDATE is over 30 days from the current date.
00030 IF Days(DATE)>Days(IDATE)+30 THEN PRINT "Past Due"
The DAYS function can now be used to store and perform date arithmetic on dates beginning with year 1700. Negative numbers are used to denote such dates.
Notice that the number of days in a month, leap year, etc. do not have to be coded in your program because they are built into this function.
If the numeric date parameter is invalid, the Days function will return zero. Therefore, the Days function can also be used to check the validity of dates entered from the keyboard. For example,
00010 LET DATE$("*y/m/d") ! be sure default format is year/month/day 00020 LET M$="14" ! month is invalid 00030 LET D$="31" 00040 LET Y$="88" 00050 LET D=VAL(Y$&M$&D$) ! D = 881431 00060 PRINT Days(D) ! invalid date = 0 00070 LET M$="12" ! month is valid 00080 LET D=VAL(Y$&M$&D$) ! D = 881231 00090 PRINT Days(D) ! valid date = 32507 00095 LET DATE$("*m/d/y") ! change default format to month/day/year 00096 PRINT Days(D) ! invalid date = 0 (does not fit format)
The value of D in line 96 is invalid because line 95 changes the default format for dates (note the * at the start of the date string). The optional second parameter of the Days function can be used to temporarily change the date format. Line 97 will print a nonzero value because the date is valid in the format specified in the optional string parameter.
00097 PRINT Days(D,"y/m/d") ! valid date = 32507 00098 PRINT Days(D) ! invalid date = 0 (does not fit format specified in line 95)
Line 98 returns zero because the format in line 97 only applies to that one function call. Since there is no asterisk in the date string, line 97 does not change the default date format, whereas line 95 does.
Parameters
The "date" parameter is a numeric expression that represents the date for which the number of days should be calculated. If "date" is not valid according to the current default format, Days will return 0.
The optional "format$" parameter is a string expression which identifies the format of the value to be returned. When the first character of the string expression includes an asterisk (*), it identifies the default format which should be used by the Date, Date$ and Days parameters until the workstation exits Business Rules or until the format is changed again. Format changes affect the current workstation only.
The format$ parameter may include separating characters and any of the following date specifications: D (day), M (month), Y (year) or C (century). The total number of separating characters and date specifications may not exceed 6. Consecutive repetitions (DDD, YY, etc.) of the date specifications count as just one specification, but consecutive repetitions of separating characters do not use this rule. See the Date$ function for additional information about format$.
Related Functions
See also Date$ and Date for other date processing functions.