|
From: Leif Svalgaard <leif@leif.org> I left in some unncessary code (in this context). Try this instead:\ > 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 > COMPUTE NBR-DAYS = DAYS-AT-MONTH (NBR-MONTHS) + GRE-DD > PERFORM CHECK-IF-LEAP-YEAR > 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-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.