# Help with DATE\$

``` BBS: Inland Empire Archive
Date: 04-09-92 (08:07)             Number: 108
From: MATT HART                    Refer#: NONE
To: GRAHAM CHATFIELD              Recvd: NO
Subj: Help with DATE\$                Conf: (2) Quik_Bas```
``` GC> What I need is a date calculator to perform a function like this:

GC> Take todays date (April 7/92) which date\$ prints as "04-07-1992"
GC> and find the new date if I subtract 20 days from todays date.

GC> IE:    DATE\$ - number_of_days = previous date

GC>  or   April 7/92 - 20 = March xx/92

'
' OldDate\$ in format MM-DD-YYYY
'
DEFINT A-Z

INPUT NumDays
IF NumDays => 0 THEN
ELSE
ENDIF
END

MM = VAL(LEFT\$(OldDate\$,2))
DD = VAL(MID\$(OldDate\$,4,2))
YY = VAL(RIGHT\$(OldDate\$,4))
DD = DD + NumDays
LeapYear = -(YY <> 2000 AND YY MOD 4 = 0)
DO UNTIL DD > 0
SELECT CASE MM
CASE 1
DD = DD + 31
YY = YY - 1
MM = 12
LeapYear = -(YY <> 2000 AND YY MOD 4 = 0)
CASE 2,4,6,8,9,11
DD = DD + 31
MM = MM - 1
CASE 3
DD = DD + 28 + LeapYear
MM = MM - 1
CASE 5,7,10,12
DD = DD + 30
MM = MM - 1
END SELECT
LOOP
DO
SELECT CASE MM
CASE 1,3,5,7,8,10
IF DD > 31 THEN
MM = MM + 1
DD = DD - 31
ELSE
EXIT DO
ENDIF
CASE 2
IF DD > 28+LeapYear THEN
MM = MM + 1
DD = DD - 28 - LeapYear
ELSE
EXIT DO
ENDIF
CASE 4,6,8,9,11
IF DD > 31 THEN
MM = MM + 1
DD = DD - 30
ELSE
EXIT DO
ENDIF
CASE 12
IF DD > 31 THEN
MM = 1
DD = DD - 31
YY = YY + 1
LeapYear = -(YY <> 2000 AND YY MOD 4 = 0)
ELSE
EXIT DO
ENDIF
END SELECT
LOOP
M\$ = LTRIM\$(RTRIM\$(STR\$(MM))) : IF MM<10 THEN M\$="0"+M\$
D\$ = LTRIM\$(RTRIM\$(STR\$(DD))) : IF DD<10 THEN D\$="0"+D\$
Y\$ = LTRIM\$(RTRIM\$(STR\$(YY)))
END FUNCTION

---
* Origin: Midnight Micro!  V.32/REL  (918)451-3306 (1:170/600)
``` Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET