1
QB64 Discussion / Time Calculator
« on: April 14, 2022, 08:05:31 pm »Code: QB64: [Select]
- 'Author: Jaze James McAskill (mcaskilljaze@gmail.com)
- 'License: Freeware if anyone can remember what that is.
- ' All I ask is that if you copy part or all
- ' of this code you keep my name on it
- CALL Menu
- HaltAndDisplay% = 0: UserCommand$ = "": HeaderCopy$ = "": Instructions$ = "": HighlightedOption% = 0
- yPos% = 0: xPos% = 0: GDTMonth% = 0: GDTDay% = 0: GDTYear% = 0: O% = 0: OP$ = "": MaxOption% = 0
- GDTHours% = 0: GDTMinutes% = 0: GDTSeconds% = 0: GDTRtn$ = ""
- MW$ = "": SomeKey% = 0: TimerStarted% = 0: FirstTime% = 0: Increment% = 0: TimeElapsed% = 0
- HaltAndDisplay% = TRUE: yPos% = 15: xPos% = 17: HighlightedOption% = 1: MaxOption% = 6
- TimerStarted% = FALSE%: Increment% = 1
- UserCommand$ = INKEY$
- xPos% = 17: yPos% = 15
- HeaderCopy$ = Header$
- COLOR 15
- OP$ = "": OP$ = S$(O%) + Suffix$(O%)
- OP$ = "": OP$ = S$(O%) + Suffix$(O%)
- COLOR 10, 1: a$ = "": a$ = WrittenOutDate$(GDTMonth%, GDTDay%, GDTYear%) + " at " + ClockString$(GDTHours%, GDTMinutes%, GDTSeconds%)
- yPos% = yPos% + 21
- PRINT "11"
- PRINT "12"
- PRINT "59"
- PRINT "59"
- HaltAndDisplay% = FALSE
- SomeKey% = _KEYHIT
- FirstTime% = TIMER
- TimerStarted% = TRUE%
- FirstTime% = 0
- Increment% = 1
- TimeElapsed% = 0
- TimerStarted% = FALSE%
- CASE LeftArrowKey$
- HighlightedOption% = HighlightedOption% - 1
- HaltAndDisplay% = TRUE%
- CASE RightArrowKey$
- HighlightedOption% = HighlightedOption% + 1
- HaltAndDisplay% = TRUE%
- CASE UpArrowKey$
- GDTMonth% = GDTMonth% - Increment%
- GDTDay% = 29
- GDTDay% = GDTDay% - Increment%
- GDTDay% = 30
- GDTYear% = GDTYear% - Increment%
- GDTDay% = CorrectDay%(GDTMonth%, GDTDay%, GDTYear%)
- GDTHours% = GDTHours% - 1
- GDTMinutes% = GDTMinutes% - Increment%
- GDTSeconds% = GDTSeconds% - Increment%
- HaltAndDisplay% = TRUE%
- CASE DownArrowKey$
- GDTMonth% = GDTMonth% + Increment%
- GDTDay% = CorrectDay%(GDTMonth%, GDTDay%, GDTYear%)
- GDTDay% = GDTDay% + Increment%
- GDTYear% = GDTYear% + Increment%
- GDTDay% = CorrectDay%(GDTMonth%, GDTDay%, GDTYear%)
- GDTHours% = GDTHours% + 1
- GDTMinutes% = GDTMinutes% + Increment%
- GDTSeconds% = GDTSeconds% + Increment%
- HaltAndDisplay% = TRUE%
- HaltAndDisplay% = TRUE%
- GDTRtn$ = ""
- GDTRtn$ = "000"
- GDTRtn$ = GDTRtn$ + S$(GDTYear%) + ":"
- tempDay% = 0: tempDay% = DaysPassedJanFromMonthDayYear(GDTMonth%, GDTDay%, GDTYear%)
- GDTRtn$ = GDTRtn$ + "00"
- GDTRtn$ = GDTRtn$ + S$(tempDay%) + ":"
- GDTRtn$ = GDTRtn$ + S$(GDTHours%) + ":"
- GDTRtn$ = GDTRtn$ + S$(GDTMinutes%) + ":"
- GDTRtn$ = GDTRtn$ + S$(GDTSeconds%)
- GetDateAndTime$ = GDTRtn$
- DisplayHours$ = "": CSRtn$ = "": AmPm$ = ""
- DisplayHours$ = "12"
- AmPm$ = "AM"
- DisplayHours$ = S$(CSHours%)
- AmPm$ = "AM"
- DisplayHours$ = "12"
- AmPm$ = "PM"
- DisplayHours$ = S$(CSHours% - 12)
- AmPm$ = "PM"
- CSRtn$ = DisplayHours$ + ":"
- CSRtn$ = CSRtn$ + S$(CSMinutes%) + " " + AmPm$ + " and " + S$(CSSeconds%) + " second"
- ClockString$ = CSRtn$
- xPos% = 0: yPos% = 0: MaxOption% = 0: HighlightedOption% = 0
- HaltAndDisplay% = 0: UserCommand$ = "": Instructions$ = "": TimerStarted% = 0: FirstTime% = 0: TimeElapsed% = 0
- GDMonth% = 0: GDDay% = 0: GDYear% = 0: MW$ = "": Increment% = 0: MinOption% = 0: HeaderCopy$ = "": GDRtn$ = ""
- HaltAndDisplay% = TRUE%: yPos% = 22: xPos% = 19: HighlightedOption% = 1: Increment% = 1
- MaxOption% = 3: MinOption% = 1: HeaderCopy$ = Header$
- TimerStarted% = FALSE
- UserCommand$ = INKEY$
- HeaderCopy$ = Header$
- COLOR 15
- Instructions$ = Instructions$ + "Push [ENTER] when you have selected the desired date"
- OP$ = "": OP$ = S$(O%) + Suffix$(O%)
- OP$ = "": OP$ = S$(O%) + Suffix$(O%)
- HaltAndDisplay% = FALSE%
- SomeKey% = _KEYHIT
- FirstTime% = TIMER
- TimerStarted% = TRUE%
- FirstTime% = 0
- Increment% = 1
- TimeElapsed% = 0
- TimerStarted% = FALSE%
- CASE UpArrowKey$
- GDMonth% = GDMonth% - Increment%
- GDDay% = 29
- GDDay% = GDDay% - Increment%
- GDDay% = 30
- GDYear% = GDYear% - Increment%
- GDDay% = CorrectDay%(GDMonth%, GDDay%, GDYear%)
- HaltAndDisplay% = TRUE%
- CASE DownArrowKey$
- GDMonth% = GDMonth% + Increment%
- GDDay% = CorrectDay%(GDMonth%, GDDay%, GDYear%)
- GDDay% = GDDay% + Increment%
- GDYear% = GDYear% + Increment%
- GDDay% = CorrectDay%(GDMonth%, GDDay%, GDYear%)
- HaltAndDisplay% = TRUE%
- CASE RightArrowKey$
- HighlightedOption% = HighlightedOption% + 1
- HaltAndDisplay% = TRUE%
- CASE LeftArrowKey$
- HighlightedOption% = HighlightedOption% - 1
- HaltAndDisplay% = TRUE%
- GDRtn$ = ""
- GDRtn$ = MakeFormattedDATE$(GDMonth%, GDDay%, GDYear%)
- GetDate$ = GDRtn$
- MFDRtn$ = ""
- MFDRtn$ = MFDRtn$ + S$(MFMonth%) + "/"
- MFDRtn$ = MFDRtn$ + S$(MFDay%) + "/"
- MFDRtn$ = MFDRtn$ + "000"
- MFDRtn$ = MFDRtn$ + S$(MFYear%)
- MakeFormattedDATE$ = MFDRtn$
- WODRtn$ = ""
- WODRtn$ = MonthWord$(WODMonth%)
- WODRtn$ = WODRtn$ + " "
- WODRtn$ = WODRtn$ + S$(WODDay%) + Suffix(WODDay%)
- WODRtn$ = WODRtn$ + ", "
- WODRtn$ = WODRtn$ + S$(WODYear%)
- WrittenOutDate$ = WODRtn$
- CDRtn% = 0
- CDRtn% = 31
- CDRtn% = 30
- CASE 29
- CDRtn% = 1
- CASE 30
- CASE 31
- CDRtn% = 1
- CDRtn% = 1
- CDRtn% = CDDay%
- CorrectDay% = CDRtn%
- CBRtn% = 0
- CBRtn% = MinX%
- CenterBetween = CBRtn%
- SUB FromNowUntil
- FNUMonth% = 0: FNUDay% = 0: FNUYear% = 0: FNUHour% = 0: FNUMinute% = 0: FNUSecond% = 0
- FNUHeader$ = "": FNUTargetFormatDATE$ = "": FNUTargetMonth% = 0: FNUTargetDay% = 0: FNUTargetYear% = 0
- FNUTargetFormatTIME$ = "": FNUTargetHour% = 0: FNUTargetMinute% = 0: FNUTargetSecond% = 0: FNUTargetDayCopy% = 0
- FNUFinalDay% = 0: FNUFinalMonth% = 0: FNUFinalYear% = 0: FNUFinalHour% = 0: FNUFinalMinute% = 0: FNUFinalSecond% = 0
- a$ = "": LeftChar$ = ""
- FNUDay% = DaysPassedJanFromMonthDayYear(FNUMonth%, FNUDay%, FNUYear%)
- FNUHeader$ = "Select A Target Date$"
- FNUTargetFormatDATE$ = GetDate$(FNUHeader$)
- FNUTargetDayCopy% = FNUTargetDay%
- FNUTargetDay% = DaysPassedJanFromMonthDayYear(FNUTargetMonth%, FNUTargetDay%, FNUTargetYear%)
- FNUHeader$ = ""
- FNUHeader$ = "Select A Target Time On " + WrittenOutDate$(FNUTargetMonth%, FNUTargetDayCopy%, FNUTargetYear%)
- FNUTargetFormatTIME$ = GetTime$(FNUHeader$)
- FNUFinalSecond% = FNUTargetSecond% - FNUSecond%
- FNUTargetMinute% = FNUTargetMinute% - 1
- FNUFinalSecond% = FNUFinalSecond% + 60
- FNUFinalMinute% = FNUTargetMinute% - FNUMinute%
- FNUTargetHour% = FNUTargetHour% - 1
- FNUFinalMinute% = FNUFinalMinute% + 60
- FNUFinalHour% = FNUTargetHour% - FNUHour%
- FNUFinalHour% = FNUFinalHour% + 60
- FNUTargetDay% = FNUTargetDay% - 1
- FNUFinalDay% = FNUTargetDay% - FNUDay%
- FNUFinalDay% = FNUFinalDay% + 366
- FNUTargetYear% = FNUTargetYear% - 1
- FNUFinalYear% = FNUTargetYear% - FNUYear%
- a$ = "": a$ = "The selected date and time is before now"
- PRINT a$
- a$ = "": a$ = MakeElapsedTimeShort$(FNUFinalYear%, FNUFinalDay%, FNUFinalHour%, FNUFinalMinute%, FNUFinalSecond%)
- a$ = ElapsedTimeWrittenOut$(a$)
- b$ = "There is"
- a$ = "": a$ = WrittenOutDate$(FNUTargetMonth%, FNUTargetDayCopy%, FNUTargetYear%)
- a$ = "": a$ = ClockString$(FNUTargetHour%, FNUTargetMinute%, FNUTargetSecond%)
- a$ = "": a$ = "Hit any key to continue"
- METSRtn$ = ""
- METSRtn$ = "000"
- METSRtn$ = METSRtn$ + S$(MEYears%) + ":"
- METSRtn$ = METSRtn$ + "00"
- METSRtn$ = METSRtn$ + S$(MEDays%) + ":"
- METSRtn$ = METSRtn$ + S$(MEHours%) + ":"
- METSRtn$ = METSRtn$ + S$(MEMinutes%) + ":"
- METSRtn$ = METSRtn$ + S$(MESeconds%)
- MakeElapsedTimeShort$ = METSRtn$
- ETWORtn$ = "": Years3% = 0: Days3% = 0: Hours3% = 0: Minutes3% = 0: Seconds3% = 0
- ETWORtn$ = S$(lftNum%) + ","
- rtNum% = Years3% - (lftNum% * 1000)
- ETWORtn$ = ETWORtn$ + "00"
- ETWORtn$ = ETWORtn$ + "0"
- ETWORtn$ = ETWORtn$ + S$(rtNum%)
- ETWORtn$ = S$(Years3%)
- ETWORtn$ = ETWORtn$ + " Year"
- ETWORtn$ = ETWORtn$ + ", "
- ETWORtn$ = ETWORtn$ + " and "
- ETWORtn$ = ETWORtn$ + ", "
- ETWORtn$ = ETWORtn$ + " and "
- ETWORtn$ = ETWORtn$ + ", "
- ETWORtn$ = ETWORtn$ + " and "
- ETWORtn$ = ETWORtn$ + S$(Days3%) + " Day"
- ETWORtn$ = ETWORtn$ + ", "
- ETWORtn$ = ETWORtn$ + " and "
- ETWORtn$ = ETWORtn$ + ", "
- ETWORtn$ = ETWORtn$ + " and "
- ETWORtn$ = ETWORtn$ + S$(Hours3%) + " hour"
- ETWORtn$ = ETWORtn$ + ", "
- ETWORtn$ = ETWORtn$ + " and "
- ETWORtn$ = ETWORtn$ + S$(Minutes3%) + " minute"
- ETWORtn$ = ETWORtn$ + S$(Seconds3%) + " second"
- ElapsedTimeWrittenOut$ = ETWORtn$
- HaltAndDisplay% = 0: GTHeaderCopy$ = "": Instructions$ = "": xPos% = 0: yPos% = 0: HighlightedOption% = 0
- GTHours% = 0: GTMinutes% = 0: GTSeconds% = 0: SomeKey% = 0: TimerStarted% = 0: GTClock$ = ""
- FirstTime% = 0: Increment% = 0: TimeElapsed% = 0: UserCommand$ = "": MaxOption% = 0: GTRtn$ = ""
- HaltAndDisplay% = TRUE%: xPos% = 13: yPos% = 25: HighlightedOption% = 1
- Increment% = 1: TimerStarted% = FALSE%: MaxOption% = 3
- UserCommand$ = INKEY$
- GTHeaderCopy$ = GTHeader$
- COLOR 15
- PRINT GTHeaderCopy$
- PRINT "11"
- PRINT "12"
- PRINT "59"
- PRINT "59"
- GTClock$ = ClockString$(GTHours%, GTMinutes%, GTSeconds%)
- HaltAndDisplay% = FALSE%
- SomeKey% = _KEYHIT
- FirstTime% = TIMER
- TimerStarted% = TRUE%
- FirstTime% = 0
- Increment% = 1
- TimeElapsed% = 0
- TimerStarted% = FALSE%
- CASE UpArrowKey$
- GTHours% = GTHours% - Increment%
- GTMinutes% = GTMinutes% - Increment%
- GTSeconds% = GTSeconds% - Increment%
- HaltAndDisplay% = TRUE
- CASE DownArrowKey$
- GTHours% = GTHours% + Increment%
- GTMinutes% = GTMinutes% + Increment%
- GTSeconds% = GTSeconds% + Increment%
- HaltAndDisplay% = TRUE
- CASE LeftArrowKey$
- HighlightedOption% = HighlightedOption% - 1
- HaltAndDisplay% = TRUE
- CASE RightArrowKey$
- HighlightedOption% = HighlightedOption% + 1
- HaltAndDisplay% = TRUE
- GTRtn$ = MakeFormattedTIME$(GTHours%, GTMinutes%, GTSeconds%)
- HaltAndDisplay% = TRUE%
- GetTime$ = GTRtn$
- MFTRtn$ = ""
- MFTRtn$ = MFTRtn$ + S$(MFHours%) + ":"
- MFTRtn$ = MFTRtn$ + S$(MFMinutes%) + ":"
- MFTRtn$ = MFTRtn$ + S$(MFSeconds%)
- MakeFormattedTIME$ = MFTRtn$
- PartString$ = "": Spaces$ = "": CutString$ = "": LCRtn$ = "": LastSpaces$ = ""
- NumLastSpaces% = 0
- CutHere% = CutHere% + 1
- CutHere% = CutHere% - 1
- CutString$ = Spaces$ + PartString$ + Spaces$
- LCRtn$ = LCRtn$ + CutString$
- NumLastSpaces% = Center(Text$)
- LCRtn$ = LCRtn$ + LastSpaces$ + Text$
- LongCenter$ = LCRtn$
- DPJFMDYRtn% = 0: LeapYear% = 0
- CASE 1
- DPJFMDYRtn% = Day9%
- CASE 2
- DPJFMDYRtn% = 31 + Day9%
- CASE 3
- DPJFMDYRtn% = 31 + 28 + LeapYear% + Day9%
- CASE 4
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + Day9%
- CASE 5
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + Day9%
- CASE 6
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + Day9%
- CASE 7
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + 30 + Day9%
- CASE 8
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + 30 + 31 + Day9%
- CASE 9
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + 30 + 31 + 31 + Day9%
- CASE 10
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + 30 + 31 + 31 + 30 + Day9%
- CASE 11
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + Day9%
- CASE 12
- DPJFMDYRtn% = 31 + 28 + LeapYear% + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + Day9%
- DaysPassedJanFromMonthDayYear = DPJFMDYRtn%
- SUB HowLongSince
- YearNow% = 0: DayNow% = 0: HourNow% = 0: MinuteNow% = 0: SecondNow% = 0: MonthNow% = 0
- HLSTargetDateAndTime$ = "": Instructions$ = "": DayNowCopy% = 0: HLSTargetYear% = 0: HLSTargetDay% = 0
- HLSTargetHour% = 0: HLSTargetMinute% = 0: HLSTargetSecond% = 0: HLSFinalYear% = 0: HLSFinalDay% = 0
- HLSFinalHour% = 0: HLSFinalMinute% = 0: HLSFinalSecond% = 0: SecondNowCopy% = 0: MinuteNowCopy% = 0: HourNowCopy% = 0
- DayNowCopy% = 0: YearNowCopy% = 0: HLSTargetMonth% = 0: HLSTargetDayCopy% = 0
- DayNowCopy% = DayNow%
- DayNow% = DaysPassedJanFromMonthDayYear(MonthNow%, DayNow%, YearNow%)
- YearNowCopy% = YearNow%
- HourNowCopy% = HourNow%
- MinuteNowCopy% = MinuteNow%
- SecondNowCopy% = SecondNow%
- Instructions$ = "Select A Target Date and Time Before " + WrittenOutDate$(MonthNow%, DayNowCopy%, YearNow%)
- Instructions$ = Instructions$ + " at " + ClockString$(HourNow%, MinuteNow%, SecondNow%)
- HLSTargetDateAndTime$ = GetDateAndTime$(Instructions$)
- HLSTargetMonth% = MonthOrDayFromDaysPassedJan(HLSTargetDay%, 1, HLSTargetYear%)
- HLSTargetDayCopy% = MonthOrDayFromDaysPassedJan(HLSTargetDay%, 2, HLSTargetYear%)
- HLSFinalSecond% = SecondNow% - HLSTargetSecond%
- HLSFinalSecond% = HLSFinalSecond% + 60
- MinuteNow% = MinuteNow% - 1
- HLSFinalMinute% = MinuteNow% - HLSTargetMinute%
- HLSFinalMinute% = HLSFinalMinute% + 60
- HourNow% = HourNow% - 1
- HLSFinalHour% = HourNow% - HLSTargetHour%
- HLSFinalHour% = HLSFinalHour% + 24
- DayNow% = DayNow% - 1
- HLSFinalDay% = DayNow% - whatTheHellInteger%
- HLSFinalDay% = HLSFinalDay% + 365
- YearNow% = YearNow% - 1
- HLSFinalYear% = YearNow% - HLSTargetYear%
- a$ = "": a$ = "The selected date and time is after "
- a$ = a$ + WrittenOutDate$(MonthNow%, DayNowCopy%, YearNowCopy%)
- a$ = a$ + " at " + ClockString$(HourNowCopy%, MinuteNowCopy%, SecondNowCopy%)
- a$ = "": a$ = WrittenOutDate$(HLSTargetMonth%, HLSTargetDayCopy%, HLSTargetYear%)
- a$ = a$ + " at " + ClockString$(HLSTargetHour%, HLSTargetMinute%, HLSTargetSecond%)
- a$ = a$ + " occurred "
- a$ = a$ + ElapsedTimeWrittenOut$(MakeElapsedTimeShort$(HLSFinalYear%, HLSFinalDay%, HLSFinalHour%, HLSFinalMinute%, HLSFinalSecond%))
- a$ = a$ + " ago"
- SUB WhatDateAfterElapsedTime
- TimePassed$ = "": YearsToday% = 0: MonthToday% = 0: DaysToday% = 0: DaysTodayAfterJan0% = 0: HoursToday% = 0: MinutesToday% = 0
- SecondsToday% = 0: YearsPassed% = 0: DaysPassed% = 0: HoursPassed% = 0: MinutesPassed% = 0: SecondsPassed% = 0
- ResultingYears% = 0: ResultingDaysPassedJan% = 0: ResultingDays% = 0: ResultingHours% = 0: ResultingMinutes% = 0
- ResultingSeconds% = 0: ResultingDateMonth% = 0: ResultingDateDay% = 0: ResultingDateYear% = 0: ResultingTimeHour% = 0
- ResultingTimeMinutes% = 0: ResultingTimeSeconds% = 0: AnswerString$ = ""
- DaysTodayAfterJan0% = DaysPassedJanFromMonthDayYear(MonthToday%, DaysToday%, YearsToday%)
- TimePassed$ = GetElapsedTime$("Find the date after how much time has passed?")
- ResultingSeconds% = SecondsToday% + SecondsPassed%
- ResultingSeconds% = ResultingSeconds% - 60
- MinutesPassed% = MinutesPassed% + 1
- ResultingMinutes% = MinutesToday% + MinutesPassed%
- ResultingMinutes% = ResultingMinutes% - 60
- HoursPassed% = HoursPassed% + 1
- ResultingHours% = HoursToday% + HoursPassed%
- ResultingHours% = ResultingHours% - 24
- DaysPassed% = DaysPassed% + 1
- ResultingDays% = DaysTodayAfterJan0% + DaysPassed%
- ResultingDays% = ResultingDays% - 365
- YearsPassed% = YearsPassed% + 1
- ResultingYears% = YearsToday% + YearsPassed%
- ResultingDateYear% = ResultingYears%
- ResultingDateMonth% = MonthOrDayFromDaysPassedJan(ResultingDays%, 1, ResultingDateYear%)
- ResultingDateDay% = MonthOrDayFromDaysPassedJan(ResultingDays%, 2, ResultingDateYear%)
- ResultingTimeHour% = ResultingHours%
- ResultingTimeMinutes% = ResultingMinutes%
- ResultingTimeSeconds% = ResultingSeconds%
- AnswerString$ = ElapsedTimeWrittenOut$(MakeElapsedTimeShort$(YearsPassed%, DaysPassed%, HoursPassed%, MinutesPassed%, SecondsPassed%))
- AnswerString$ = AnswerString$ + " after now is "
- AnswerString$ = AnswerString$ + WrittenOutDate$(ResultingDateMonth%, ResultingDateDay%, ResultingDateYear%)
- AnswerString$ = AnswerString$ + " at " + ClockString$(ResultingTimeHour%, ResultingTimeMinutes%, ResultingTimeSeconds%)
- SUB AddElapsedTimes
- Years1% = 0: Years2% = 0: AddedYears% = 0: Days1% = 0: Days2% = 0: AddedDays% = 0: Hours1% = 0
- Hours2% = 0: AddedHours% = 0: Minutes1% = 0: Minutes2% = 0: AddedMinutes% = 0: Seconds1% = 0
- Seconds2% = 0: AddedSeconds% = 0: et1$ = "": et2$ = "": Prompt2$ = "": AnswerString$ = "": AT$ = ""
- et1$ = GetElapsedTime$("Select the fire time")
- Prompt2$ = "Select the amount of time to add to " + ElapsedTimeWrittenOut$(et1$)
- et2$ = GetElapsedTime$(Prompt2$)
- AddedSeconds% = Seconds1% + Seconds2%
- AddedSeconds% = AddedSeconds% - 60
- Minutes1% = Minutes1% + 1
- AddedMinutes% = Minutes1% + Minutes2%
- AddedMinutes% = AddedMinutes% - 60
- Hours1% = Hours1% + 1
- AddedHours% = Hours1% + Hours2%
- AddedHours% = AddedHours% - 24
- Days1% = Days1% + 1
- AddedDays% = Days1% + Days2%
- AddedDays% = AddedDays% - 365
- Years1% = Years1% + 1
- AddedYears% = Years1% + Years2%
- AnswerString$ = ElapsedTimeWrittenOut$(et1$) + " added with " + ElapsedTimeWrittenOut$(et2$)
- ATShort$ = MakeElapsedTimeShort$(AddedYears%, AddedDays%, AddedHours%, AddedMinutes%, AddedSeconds%)
- AT$ = ElapsedTimeWrittenOut$(ATShort$)
- AnswerString$ = AnswerString$ + " equals " + AT$
- ll$ = P$
- SUB SubtractElapsedTimes
- Et1$ = "": Et2$ = "": Prompt1$ = "": Prompt2$ = "": Years1% = 0: Years2% = 0: SubtractedYears% = 0: Days1% = 0: Days2% = 0
- SubtractedDays% = 0: Hours1% = 0: Hours2% = 0: SubtractedHours% = 0: Minutes1% = 0: Minutes2% = 0: SubtractedMinutes% = 0
- Seconds1% = 0: Seconds2% = 0: SubtractedSeconds% = 0: BT% = 0: FirstYears% = 0: SecondYears% = 0: FirstDays% = 0: SecondDays% = 0
- FirstHours% = 0: SecondHours% = 0: FirstMinutes% = 0: SecondMinutes% = 0: FirstSeconds% = 0: SecondSeconds% = 0: Result$ = ""
- FTWO$ = "": STWO$ = "": SubTWO$ = ""
- Prompt1$ = "Select one of the 2 times"
- Et1$ = GetElapsedTime$(Prompt1$)
- Prompt2$ = "Select the second time -- The smaller time will be subtracted from the larger"
- Et2$ = GetElapsedTime$(Prompt2$)
- BT% = 1
- BT% = 2
- ' first - second
- FirstYears% = Years1%: SecondYears% = Years2%
- FirstDays% = Days1%: SecondDays% = Days2%
- FirstHours% = Hours1%: SecondHours% = Hours2%
- FirstMinutes% = Minutes1%: SecondMinutes% = Minutes2%
- FirstSeconds% = Seconds1%: SecondSeconds% = Seconds2%
- FirstYears% = Years2%: SecondYears% = Years1%
- FirstDays% = Days2%: SecondDays% = Days1%
- FirstHours% = Hours2%: SecondHours% = Hours1%
- FirstMinutes% = Minutes2%: SecondMinutes% = Minutes1%
- FirstSeconds% = Seconds2%: SecondSeconds% = Seconds1%
- SubtractedSeconds% = FirstSeconds% - SecondSeconds%
- SubtractedSeconds% = SubtractedSeconds% + 60
- FirstMinutes% = FirstMinutes% - 1
- SubtractedMinutes% = FirstMinutes% - SecondMinutes%
- SubtractedMinutes% = SubtractedMinutes% + 60
- FirstHours% = FirstHours% - 1
- SubtractedHours% = FirstHours% - SecondHours%
- SubtractedHours% = SubtractedHours% + 24
- FirstDays% = FirstDays% - 1
- SubtractedDays% = FirstDays% - SecondDays%
- SubtractedDays% = SubtractedDays% + 365
- FirstYears% = FirstYears% - 1
- SubtractedYears% = FirstYears% - SecondYears%
- ll$ = P$
- FTWO$ = ElapsedTimeWrittenOut$(Et1$)
- STWO$ = ElapsedTimeWrittenOut$(Et2$)
- SubTWO$ = ElapsedTimeWrittenOut$(MakeElapsedTimeShort$(SubtractedYears%, SubtractedDays%, SubtractedHours%, SubtractedMinutes%, SubtractedSeconds%))
- Result$ = FTWO$ + " minus " + STWO$ + " equals " + SubTWO$
- ll$ = P$
- SUB Multiply
- Prompt$ = "": Et$ = "": Years% = 0: Days% = 0: Hours% = 0: Minutes% = 0: Seconds% = 0: ETWO$ = "": x = 0
- Constant! = 0.0: ProductYears% = 0: ProductDays% = 0: ProductHours% = 0: ProductMinutes% = 0: ProductSeconds% = 0
- TMin% = 0: THr% = 0: Tsec% = 0: Tday% = 0: Tyr% = 0: Ans$ = ""
- Prompt$ = "Select a time to multiply"
- Et$ = GetElapsedTime$(Prompt$)
- ETWO$ = ElapsedTimeWrittenOut$(Et$)
- x = Center("by what ")
- ProductSeconds% = RoundOff(Seconds% * Constant! / 100) * 100
- ProductSeconds% = ProductSeconds% - 60
- TMin% = TMin% + 1
- ProductMinutes% = RoundOff(Minutes% * Constant! / 100) * 100 + TMin%
- ProductMinutes% = ProductMinutes% - 60
- THr% = THr% + 1
- ProductHours% = RoundOff(Hours% * Constant! / 100) * 100 + THr%
- ProductHours% = ProductHours% - 24
- Tday% = Tday% + 1
- ProductDays% = RoundOff(Days% * Constant! / 100) * 100 + Tday%
- ProductDays% = ProductDays% - 365
- Tyr% = Tyr% + 1
- ProductYears% = RoundOff(Years% * Constant! / 100) * 100 + Tyr%
- PRINT LongCenter(ElapsedTimeWrittenOut$(MakeElapsedTimeShort$(ProductYears%, ProductDays%, ProductHours%, ProductMinutes%, ProductSeconds%)), 40, TRUE)
- ll$ = P$
- DifferentNumber! = DifferentNumber! + 1
- DifferentNumber! = DifferentNumber!
- Rtn = DifferentNumber! / 100
- RoundOff = Rtn!
- KeyThatWasHit% = 0: TimerStarted% = FALSE%: FirstTime% = 0: Increment% = 1: RecentTime% = 0: TimeDifference% = 0
- highlightedOption = 4: haltAndDisplay = TRUE
- minOption = 4: maxOption = 8
- userCommand$ = INKEY$
- titleCopy$ = title$
- a$ = LongCenter(titleCopy$, 60, FALSE%)
- Instructions$ = ""
- Instructions$ = "Use the arrow keys to select the desired elapsed time - Push [ENTER] to accept - Push "
- xPos = xPos + 16
- 'Years
- 'Days
- a$ = "": a$ = ElapsedTimeWrittenOut$(MakeElapsedTimeShort$(Years1, Days1, Hours1, Minutes1, Seconds1))
- haltAndDisplay = FALSE
- SomeKey% = _KEYHIT
- FirstTime% = TIMER
- TimerStarted% = TRUE%
- FirstTime% = 0
- Increment% = 1
- TimeElapsed% = 0
- TimerStarted% = FALSE%
- CASE UpArrowKey$
- Years1 = Years1 - Increment%
- Days1 = Days1 - Increment%
- Hours1 = Hours1 - 1
- Minutes1 = Minutes1 - Increment%
- Seconds1 = Seconds1 - Increment%
- haltAndDisplay = TRUE
- CASE DownArrowKey$
- Years1 = Years1 + Increment%
- Days1 = Days1 + Increment%
- Hours1 = Hours1 + 1
- Minutes1 = Minutes1 + Increment%
- Seconds1 = Seconds1 + Increment%
- haltAndDisplay = TRUE
- CASE RightArrowKey$
- highlightedOption = highlightedOption + 1
- haltAndDisplay = TRUE
- CASE LeftArrowKey$
- highlightedOption = highlightedOption - 1
- haltAndDisplay = TRUE
- Rtn$ = MakeElapsedTimeShort$(Years1, Days1, Hours1, Minutes1, Seconds1)
- montH = 1: daY = 1: year = 2022
- Years1 = 0: Days1 = 0: Hours1 = 0: Minutes1 = 0: Seconds1 = 0
- Years2 = 0: Days2 = 0: Hours2 = 0: Minutes2 = 0: Seconds2 = 0
- haltAndDisplay = TRUE
- GetElapsedTime$ = Rtn$
- MODFDPJRtn% = 0: Month27% = 0: Leap% = 0
- Month27% = 1
- Days27% = Days27%
- Month27% = 2
- Days27% = Days27% - 31
- Month27% = 3
- Days27% = Days27% - 59 - Leap%
- Month27% = 4
- Days27% = Days27% - 90 - Leap%
- Month27% = 5
- Days27% = Days27% - 120 - Leap%
- Month27% = 6
- Days27% = Days27% - 150 - Leap%
- Month27% = 7
- Days27% = Days27% - 180 - Leap%
- Month27% = 8
- Days27% = Days27% - 212 - Leap%
- Month27% = 9
- Days27% = Days27% - 243 - Leap%
- Month27% = 10
- Days27% = Days27% - 273 - Leap%
- Month27% = 11
- Days27% = Days27% - 304 - Leap%
- Month27% = 12
- Days27% = Days27% - 334 - Leap%
- MODFDPJRtn% = Month27%
- MODFDPJRtn% = Days27%
- MonthOrDayFromDaysPassedJan = MODFDPJRtn%
- MWRtn$ = ""
- MWRtn$ = "December"
- CASE 1
- MWRtn$ = "January"
- CASE 2
- MWRtn$ = "February"
- CASE 3
- MWRtn$ = "March"
- CASE 4
- MWRtn$ = "April"
- CASE 5
- MWRtn$ = "May"
- CASE 6
- MWRtn$ = "June"
- CASE 7
- MWRtn$ = "July"
- CASE 8
- MWRtn$ = "August"
- CASE 9
- MWRtn$ = "September"
- CASE 10
- MWRtn$ = "October"
- CASE 11
- MWRtn$ = "November"
- CASE 12
- MWRtn$ = "December"
- MWRtn$ = "January"
- MonthWord$ = MWRtn$
- SRtn$ = ""
- SRtn$ = "st"
- Suffix$ = SRtn$
- WD1C2T3Rtn$ = "": Years8% = 0: Days8% = 0: Hours8% = 0: Minutes8% = 0: Seconds8% = 0: Month8% = 0
- AmPm8$ = "": LftNum8% = 0: RtNum8% = 0: LpYr% = 0
- CASE 1
- Month8% = MonthOrDayFromDaysPassedJan(Days8% - LpYr%, 1, Years8%)
- Days8% = MonthOrDayFromDaysPassedJan(Days8% - LpYr%, 2, Years8%)
- WD1C2T3Rtn$ = MonthWord$(Month8%)
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " " + S$(Days8%)
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + Suffix$(Days8%) + ", " + S$(Years8%)
- CASE 2
- WD1C2T3Rtn$ = "12"
- AmPm8$ = "AM"
- WD1C2T3Rtn$ = S$(Hours8%)
- AmPm8$ = "AM"
- WD1C2T3Rtn$ = "12"
- AmPm8$ = "PM"
- WD1C2T3Rtn$ = S$(Hours8% - 12)
- AmPm8$ = "PM"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ":" + S$(Minutes8%) + " " + AmPm8$ + " and " + S$(Seconds8%)
- CASE 3
- WD1C2T3Rtn$ = S$(LftNum8%) + ","
- RtNum8% = Years8% - (LftNum8% * 1000)
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + "00"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + "0"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + S$(RtNum8%)
- WD1C2T3Rtn$ = S$(Years8%)
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " Year"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ", "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " and "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ", "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " and "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ", "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " and "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + S$(Days8%) + " Day"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ", "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " and "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ", "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " and "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + S$(Hours8%) + " hour"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + ", "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + " and "
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + S$(Minutes8%) + " minute"
- WD1C2T3Rtn$ = WD1C2T3Rtn$ + S$(Seconds8%) + " second"
- WrittenDate1Clock2Time3$ = WD1C2T3Rtn$
- SUB Menu
- HaltAndDisplay% = 0: HighlightedOption% = 0: yPos% = 0: UserCommand$ = "": A$ = ""
- xPos% = 0: MaxOption% = 0: SelectedAnOption% = 0
- HaltAndDisplay% = TRUE%: HighlightedOption% = 1: yPos% = 13: MaxOption% = 7: SelectedAnOption% = FALSE%
- HighlightedOption% = 1
- HaltAndDisplay% = TRUE%
- yPos = 14
- UserCommand$ = INKEY$
- A$ = "Time Calculator Menu": xPos% = Center(A$)
- PRINT "---- ---------- ----"
- A$ = "": A$ = "1.) Find How Long From Now"
- A$ = "": A$ = "Until A Selected Time"
- A$ = "": A$ = "2.) Find How Long It Has Been Since"
- A$ = "": A$ = "A Selected Time Has Passed"
- A$ = "": A$ = "3.) Find The Date And Time It Will Be After"
- A$ = "": A$ = "A Selected Amount Of Time Has Passed"
- A$ = "": A$ = "4.) Add Two Elapsed Times"
- A$ = "": A$ = "5.) Subtract One Elapsed Time From Another One"
- A$ = "": A$ = "6.) Multiply An Elapsed Time By A Constant"
- A$ = "": A$ = "7.) Exit"
- HaltAndDisplay% = FALSE%
- CASE UpArrowKey$, LeftArrowKey$
- HighlightedOption% = HighlightedOption% - 1
- HaltAndDisplay% = TRUE%
- CASE DownArrowKey$, RightArrowKey$
- HighlightedOption% = HighlightedOption% + 1
- HaltAndDisplay% = TRUE%
- SelectedAnOption% = TRUE%
- SelectedAnOption% = TRUE%
- CASE 1
- CALL FromNowUntil
- SelectedAnOption% = FALSE%
- HaltAndDisplay% = TRUE%
- CASE 2
- CALL HowLongSince
- SelectedAnOption% = FALSE%
- HaltAndDisplay% = TRUE%
- CASE 3
- CALL WhatDateAfterElapsedTime
- SelectedAnOption% = FALSE%
- HaltAndDisplay% = TRUE%
- CASE 4
- CALL AddElapsedTimes
- SelectedAnOption% = FALSE%
- HaltAndDisplay% = TRUE%
- CASE 5
- CALL SubtractElapsedTimes
- SelectedAnOption% = FALSE%
- HaltAndDisplay% = TRUE%
- CASE 6
- CALL Multiply
- SelectedAnOption% = FALSE%
- HaltAndDisplay% = TRUE%
- FUNCTION P$