|
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 mailing list archive is Copyright 1997-2025 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.