BBS: Inland Empire Archive Date: 04-08-92 (04:44) Number: 16 From: RICK PEDLEY Refer#: NONE To: GRAHAM CHATFIELD Recvd: NO Subj: Help with DATE$ Conf: (2) Quik_Bas
On 04-07-92 GRAHAM CHATFIELD wrote to All...
GC> What I need is a date calculator to perform a function like this:
GC>
GC> Take todays date (April 7/92) which date$ prints as "04-07-
GC> 1992" and find the new date if I subtract 20 days from
GC> todays date.
GC>
GC> IE: DATE$ - number_of_days = previous date
GC>
GC> or April 7/92 - 20 = March xx/92
GC>
GC> Hopefully it could detect if a leap year was in effect and make the
GC> necessary adjustments for February. Form doesn't really
GC> matter, (mm/dd/yy or yyyy,mm,dd) as I can manipulate that
GC> any way I choose.
DEFINT A-Z
INPUT "Date in form 02-17-1992: ", Dayt$ 'or get date from DATE$
Month = VAL(MID$(Dayt$, 1, 2))
Day = VAL(MID$(Dayt$, 4, 2))
Year = VAL(MID$(Dayt$, 7, 4))
IF Month < 3 THEN
Year = Year - 1
Month = Month + 13
ELSE
Month = Month + 1
END IF
JulianDay& = INT(365.25 * Year) + INT(30.6001 * Month) + Day
'^ this converts it to a Julian date, which I believe is the
' number of days from the year 0.
INPUT "Subtract how many days: ", DaysSubtracted&
JulianDay& = JulianDay& - DaysSubtracted&
'Now, convert it back to a Gregorian date (the kind we're used to)
Year = INT((JulianDay& - 122.1) / 365.25)
Month = INT((JulianDay& - INT(365.25 * Year)) / 30.6001)
Day = JulianDay& - INT(365.25 * Year) - INT(30.6001 * Month)
IF Month > 13 THEN
Month = Month - 13
ELSE
Month = Month - 1
END IF
IF Month < 3 THEN Year = Year + 1
NewDayt$ = RIGHT$("00" + LTRIM$(STR$(Month)), 2) + "-" +
'(join to line below)
RIGHT$("00" + LTRIM$(STR$(Day)), 2) + "-" + LTRIM$(STR$(Year))
PRINT "The new date is: "; NewDayt$
This is pieced together from various sources, and accounts for leap
years. You might want to split the two parts into two functions,
JuliGreg and GregJuli; they'd be more useful like that.
... OFFLINE 1.36
--- Maximus 2.01wb
* Origin: The BULLpen BBS * Intel 14.4EX (613)549-5168 (1:249/140)

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