From: Taylor, Mike <Mike.Taylor@aig.com>
> What is the easiest way to convert a date to julian format.

you could use some of the date APIs (although they are not easy!).
If you can read COBOL, here is some code that will do it:

 01  VARIOUS-VARIABLES.
     02  NBR-DAYS                PIC S9(7)  COMP.
     02  NBR-YEARS               PIC S9(7)  COMP.
     02  NBR-LEAPS               PIC S9(7)  COMP.
     02  YEAR-DIV                PIC S9(5)  COMP.
     02  NBR-MONTHS              PIC S9(3)  COMP.
     02  LEAP-YEAR               PIC S9(3)  COMP.
     02  YEAR-REM                PIC S9(3)  COMP.

     02  CALENDAR-GRE-DATE.
         03  GRE-YYYY            PIC 9(4).
         03  GRE-MM              PIC 9(2).
         03  GRE-DD              PIC 9(2).
     02  FILLER                  REDEFINES  CALENDAR-GRE-DATE.
         03  GRE-YYYYMMDD        PIC 9(8).

     02  CALENDAR-JUL-FORM.
         03  JUL-YYYY            PIC 9(4).
         03  JUL-DDD             PIC 9(3).
     02  FILLER                  REDEFINES  CALENDAR-JUL-FORM.
         03  JUL-YYYYDDD         PIC 9(7).

 01  DAYS-AT-MONTHS.
     02  FILLER                  PIC S9(3)  COMP VALUE ZERO.
     02  FILLER                  PIC S9(3)  COMP VALUE 31.
     02  FILLER                  PIC S9(3)  COMP VALUE 59.
     02  FILLER                  PIC S9(3)  COMP VALUE 90.
     02  FILLER                  PIC S9(3)  COMP VALUE 120.
     02  FILLER                  PIC S9(3)  COMP VALUE 151.
     02  FILLER                  PIC S9(3)  COMP VALUE 181.
     02  FILLER                  PIC S9(3)  COMP VALUE 212.
     02  FILLER                  PIC S9(3)  COMP VALUE 243.
     02  FILLER                  PIC S9(3)  COMP VALUE 273.
     02  FILLER                  PIC S9(3)  COMP VALUE 304.
     02  FILLER                  PIC S9(3)  COMP VALUE 334.
 01  FILLER                      REDEFINES  DAYS-AT-MONTHS.
     02  DAYS-AT-MONTH           PIC S9(3)  COMP
                                            OCCURS 12 TIMES.
 CONVERT-TO-JULIAN.
     MOVE GRE-YYYY                   TO NBR-YEARS
     MOVE GRE-MM                     TO NBR-MONTHS
     MOVE DAYS-IN-MONTH (NBR-MONTHS) TO NBR-DAYS
     PERFORM CHECK-IF-LEAP-YEAR
     IF NBR-MONTHS = 2
         ADD LEAP-YEAR TO NBR-DAYS
     .
     COMPUTE NBR-DAYS = DAYS-AT-MONTH (NBR-MONTHS) + GRE-DD
     IF NBR-MONTHS > 2
         ADD LEAP-YEAR TO NBR-DAYS
     .
     MOVE NBR-YEARS TO JUL-YYYY
     MOVE NBR-DAYS  TO JUL-DDD
     .

 CHECK-IF-LEAP-YEAR.
     MOVE ZERO TO LEAP-YEAR
     DIVIDE 4 INTO NBR-YEARS
         GIVING    YEAR-DIV
         REMAINDER YEAR-REM
     IF YEAR-REM = ZERO
         MOVE 1 TO LEAP-YEAR

You can probably omit the following (if you are not dealing\
with dates before 1901 or after 2099)

         DIVIDE 100 INTO NBR-YEARS
             GIVING      YEAR-DIV
             REMAINDER   YEAR-REM
         IF YEAR-REM = ZERO
             DIVIDE 400 INTO NBR-YEARS
                 GIVING      YEAR-DIV
                 REMAINDER   YEAR-REM
             IF YEAR-REM > ZERO
                 MOVE ZERO TO LEAP-YEAR
     .




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.