to calculate with in the 2nd version...
This is what came out:
Code: Select all
'(C) 2005, by Sebastian McClouth
DECLARE FUNCTION GA$ (Value AS STRING)
DECLARE FUNCTION Milit$ (Value AS STRING)
DECLARE FUNCTION CC$ (Value AS INTEGER)
CLS
LOCATE , 20: PRINT "Universal TimeZone Calculator"
LOCATE , 20: PRINT "-----------------------------"
LOCATE , 32: PRINT "TIMEZONES:"
LOCATE , 30: PRINT "GMT 0: LONDON"
LOCATE , 1: PRINT "GMT -1: REYKJAVIK"; : LOCATE , 48: PRINT "GMT +1: BERLIN"
LOCATE , 1: PRINT "GMT -2: GREENLAND"; : LOCATE , 48: PRINT "GMT +2: CAIRO"
LOCATE , 1: PRINT "GMT -3: RIO DE JANEIRO, BRAZIL"; : LOCATE , 48: PRINT "GMT +3: MOSCOW"
LOCATE , 1: PRINT "GMT -4: SANTIAGO DE CHILE"; : LOCATE , 48: PRINT "GMT +4: STALINGRAD"
LOCATE , 1: PRINT "GMT -5: NEW YORK"; : LOCATE , 48: PRINT "GMT +5: KARACHI"
LOCATE , 1: PRINT "GMT -6: CHICAGO"; : LOCATE , 48: PRINT "GMT +6: OMSK, RUSSIA"
LOCATE , 1: PRINT "GMT -7: DENVER"; : LOCATE , 48: PRINT "GMT +7: BANGKOK"
LOCATE , 1: PRINT "GMT -8: SEATTLE"; : LOCATE , 48: PRINT "GMT +8: HONG KONG, AND CHINA"
LOCATE , 1: PRINT "GMT -9: ALASKA"; : LOCATE , 48: PRINT "GMT +9: TOKYO"
LOCATE , 1: PRINT "GMT-10: HONOLULU"; : LOCATE , 48: PRINT "GMT+10: SYDNEY"
LOCATE , 1: PRINT "GMT-11: MIDWAY ISLANDS"; : LOCATE , 48: PRINT "GMT+11: SOLOMON ISLANDS"
LOCATE , 48: PRINT "GMT+12: NEW ZEALAND"
PRINT
PRINT STRING$(80, "-")
PRINT "If giving e.g. GMT+1, etc, give as input 1, etc."
PRINT
PRINT "Enter FROM timezone: "; : INPUT "", FTz%
PRINT "Enter GMT" + GA$(LTRIM$(RTRIM$(STR$(FTz%)))) + " respective time as e.g. 14:00: "; : INPUT "", LocalTime$
PRINT : PRINT "Enter TO timezone: "; : INPUT "", TTz%
IF FTz% <= -12 THEN FTz% = 12 'As stated, -12 doesn't exist.
IF FTz% > 12 THEN FTz% = -11 'Not sure if this is correct, but it
IF TTz% <= -12 THEN TTz% = 12 'seems logical.
IF TTz% > 12 THEN TTz% = -11
'Adjust LocalTime$ from FTz% to TTz%
'------------------------------------
DateAdjust = 0 'Standard. If not changed not adjust.
'First we bring LocalTime$ back to GMT:
NLocalTime% = VAL(LEFT$(LocalTime$, 2))
IF NLocalTime% - FTz% < 0 OR NLocalTime% - FTz% > 24 THEN
IF NLocalTime% - FTz% < 0 THEN
NTTime% = 24 - (NLocalTime% - FTz%)
NDateAdjust = -1
ELSEIF NLocalTime% - FTz% > 24 THEN
NTTime% = (NLocalTime% - FTz%) - 24
NDateAdjust = 1
END IF
ELSE
NTTime% = (NLocalTime% - FTz%)
NDateAdjust = 0
END IF
'Okay, we moved FTz% to GMT, now we gonna move GMT to TTz%
IF NTTime% + TTz% < 0 OR NTTime% + TTz% > 24 THEN
IF NTTime% + TTz% < 0 THEN
TTime% = 24 - (NTTime% + TTz%)
NDateAdjust = -1
ELSEIF NTTime% + TTz% > 24 THEN
TTime% = (NTTime% + TTz%) - 24
NDateAdjust = 1
END IF
ELSE
TTime% = (NTTime% + TTz%)
DateAdjust = 0
END IF
ToTime$ = LTRIM$(RTRIM$(STR$(TTime%))) + ":" + RIGHT$(LocalTime$, 2)
'The DateAdjust?
NTime% = VAL(LEFT$(LocalTime$, 2)) 'Retrieve the hours from LocalTime$
TzToPass% = -FTz% + TTz% 'Get the total timezones to pass
N2Time% = NTime% + TzToPass% 'Calculate the NewTime
IF N2Time% < 0 THEN 'If N2Time% goes below zero
DateAdjust = -1 'Date needs adjustment
ELSEIF N2Time% > 23 THEN 'If N2Time% goes over 24
DateAdjust = 1 'Date needs adjustment
END IF
PRINT
LOCATE , 1: PRINT "TIMEZONES:";
LOCATE , 20: PRINT "COUNTRY/CITY:";
LOCATE , 46: PRINT "LOCAL TIME:";
LOCATE , 60: PRINT "APROX. DATE ADJUST:"
PRINT STRING$(80, "-")
LOCATE , 1: PRINT "FROM: ";
LOCATE , 8: PRINT "GMT" + GA$(LTRIM$(RTRIM$(STR$(FTz%))));
LOCATE , 20: PRINT CC$(FTz%);
LOCATE , 46: PRINT LocalTime$
LOCATE , 1: PRINT "TO:";
LOCATE , 8: PRINT "GMT" + GA$(LTRIM$(RTRIM$(STR$(TTz%))));
LOCATE , 20: PRINT CC$(TTz%);
LOCATE , 46: PRINT LTRIM$(RTRIM$(ToTime$));
IF LTRIM$(RTRIM$(STR$(DateAdjust))) = "1" THEN
LOCATE , 60: PRINT "+1"
ELSE
LOCATE , 60: PRINT LTRIM$(RTRIM$(STR$(DateAdjust)))
END IF
FUNCTION CC$ (Value AS INTEGER)
IF Value = 12 THEN CC$ = "New Zealand"
IF Value = 11 THEN CC$ = "Solomon Islands"
IF Value = 10 THEN CC$ = "Sydney"
IF Value = 9 THEN CC$ = "Tokyo"
IF Value = 8 THEN CC$ = "Hong Kong, and China"
IF Value = 7 THEN CC$ = "Bangkok"
IF Value = 6 THEN CC$ = "Omsk, Russia"
IF Value = 5 THEN CC$ = "Karachi"
IF Value = 4 THEN CC$ = "Stalingrad"
IF Value = 3 THEN CC$ = "Moscow"
IF Value = 2 THEN CC$ = "Cairo"
IF Value = 1 THEN CC$ = "Berlin"
IF Value = 0 THEN CC$ = "London"
IF Value = -1 THEN CC$ = "Reykjavik"
IF Value = -2 THEN CC$ = "Greenland"
IF Value = -3 THEN CC$ = "Rio de Janeiro, Brazil"
IF Value = -4 THEN CC$ = "Santiago de Chile"
IF Value = -5 THEN CC$ = "New York"
IF Value = -6 THEN CC$ = "Chicago"
IF Value = -7 THEN CC$ = "Denver"
IF Value = -8 THEN CC$ = "Seattle"
IF Value = -9 THEN CC$ = "Alaska"
IF Value = -10 THEN CC$ = "Honolulu"
IF Value = -11 THEN CC$ = "Midway Island"
END FUNCTION
FUNCTION GA$ (Value AS STRING)
IF VAL(Value) > 0 THEN
GA$ = "+" + Value
ELSEIF Value = "0" THEN
GA$ = " " + Value
ELSE
GA$ = Value
END IF
END FUNCTION
FUNCTION Milit$ (Value AS STRING)
IF LEN(Value) < 5 THEN
Milit$ = "0" + Value
END IF
END FUNCTION