Julian Day

Developer(s): Ben H. Jackson
Date: 1984
Type: Program
Platform(s): TS 2068
Tags: Utility

Converts Gregorian calendar and Julian dates. Based on a TI-59 program by Charles Kluepfel.

Content

Appears On

This tape is a compilation of programs from user group members (Robert Burton, David Baulch, Frank Bouldin, Chuck Dawson, Ryan

Related Products

Related Articles

Related Content

Image Gallery

Julian Day

Source Code

   10 REM "JULIAN DAY" © by Beb H.Jackson, 1984; ALL RIGHTS RESERVED
   20 REM -- CONVERTS                        GREGORIAN CALENDER &            JULIAN DAY
   25 REM SOURCE-- TI-59 PROGRAM      "JULIAN DAY NUMBER CALENDER"    BY  CHARLES KLUEPFEL 2/23/78
   30 REM VARIABLES--                     M-- MONTH                       D-- DATE                        Y-- YEAR                        E$-- ERA [AD or BC]             JD--JULIAN DAY                  J-- JULIAN ACCUM
   31 REM DIS--DISPLAY REG                WD--WEEK DAY[1=SUN]             F--  MENU FLAG                  WR--WORKING REG                 XT--DISPLAY<>TEST REG           T -- TEST REGISTER
  100 PRINT AT 1,5;"JULIAN DAY PROGRAM"
  110 INPUT "DATE TO JD:   0                 JD TO DATE:   1   CHOICE=";F
  120 IF F=0 THEN GO TO 1000
  130 IF F=1 THEN GO TO 3000
 1000 INPUT "MONTH [1 TO 12]=";M
 1005 PRINT "MONTH=";M
 1010 INPUT "DATE [1 TO 31]=";D
 1015 PRINT "DATE=";D
 1020 INPUT "YEAR [XXXX]=";Y
 1030 INPUT "[ AD or BC ]=";E$
 1035 IF E$<>"AD" AND E$<>"BC" THEN GO TO 1030
 1040 PRINT "YEAR=";Y;" ";E$
 1045 IF E$="BC" THEN LET Y=-1*( Y-1)
 2000 REM --GREG TO JULIAN
 2010 LET J=0: LET JD=0
 2015 IF (M-3)>=0 THEN GO TO 2050
 2017 LET Y=Y-1
 2020 LET M=M+12
 2050 IF Y>=0 THEN GO TO 2100
 2055 LET J=146097
 2060 LET J=J*((INT (Y/400))-1)
 2070 LET Y=Y-400*((INT (Y/400))-1)
 2100 LET J=J+D
 2110 LET J=J+INT (30.6*M-32.4)
 2120 LET J=J+INT (365.25*Y)
 2130 LET J=J+1721060-INT (.8+.75*INT (Y/100))
 2140 LET DIS=JD
 2145 LET JD=J
 2150 LET DIS=J-DIS
 2160 PRINT "JULIAN DAY=";DIS
 2200 REM --DAY OF WEEK
 2210 LET DIS=(JD+1)/7-INT ((JD+1)/7)
 2220 LET WD=INT (7*DIS+1.5)
 2221 IF WD=1 THEN PRINT "SUNDAY"
 2222 IF WD=2 THEN PRINT "MONDAY"
 2223 IF WD=3 THEN PRINT "TUESDAY"
 2224 IF WD=4 THEN PRINT "WEDNESDAY"
 2225 IF WD=5 THEN PRINT "THURSDAY"
 2226 IF WD=6 THEN PRINT "FRIDAY"
 2227 IF WD=7 THEN PRINT "SATURDAY"
 2230 GO TO 1000
 3000 REM --JULIAN DAY TO GREG
 3005 INPUT "JULIAN DAY=";JD
 3007 PRINT "JD=";JD
 3010 LET T=JD+32045-1
 3020 LET DIS=36524.25
 3030 GO SUB 4000
 3040 LET Y=100*DIS-4800
 3050 LET DIS=365.25
 3060 GO SUB 4000
 3070 LET Y=Y+DIS
 3080 LET T=T+91.4
 3090 LET DIS=30.6
 3105 GO SUB 4000
 3110 LET M=DIS
 3120 LET XT=DIS: LET DIS=T: LET T=XT
 3130 LET D=DIS+1
 3140 IF M<13 THEN GO TO 3154
 3150 LET Y=Y+1: LET M=M-12
 3154 LET E$="AD"
 3155 IF Y<=0 THEN LET Y=ABS Y+1: LET E$="BC"
 3160 PRINT M;"-";D;"-";Y;" ";E$
 3170 GO TO 3000
 4000 REM --JD TO GREG SBR
 4010 LET XT=DIS: LET DIS=T: LET T=XT: LET J=T: LET SAVE=DIS+.9
 4030 LET DIS=((DIS+.9)/T)
 4031 IF DIS<0 THEN LET DIS=DIS+1
 4032 LET DIS=INT DIS
 4040 LET WR=DIS: LET DIS=J: LET J=WR
 4050 LET DIS=-1*WR*DIS+SAVE
 4060 LET XT=DIS: LET DIS=T: LET T=XT
 4070 IF T<0 THEN LET T=T+1
 4071 LET T=INT T
 4080 LET DIS=J
 4090 RETURN 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

Scroll to Top