HP Forums
(15C) Julian Day to Day of Week [ISO; 12C Formula] - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (15C) Julian Day to Day of Week [ISO; 12C Formula] (/thread-6731.html)



(15C) Julian Day to Day of Week [ISO; 12C Formula] - Nick - 08-26-2016 01:39 PM

Formula: ISO Day of Week = JD MOD 7 + 1
- Same formula as 12C [1 = Monday .. 7 = Sunday]

Input: X = JD (Julian Day)
Output: X = DOW (ISO Day of Week)

Size: 15 Bytes

Requires: (15C) MM.DDYYYY or DD.MMYYYY to Julian Day [Stack-Only] (or equivalent)

Note: The stack is not preserved.

Enjoy,
Nick

Code:
01 LBL 0
02 ENTER
03 ENTER
04 7
05 /
06 LSTx
07 X<->Y
08 FRAC
09 *
10 1
11 .
12 5
13 +
14 INT
15 RTN

Comments:

14 INT(x + .5) ' Rounding per precision loss during MOD


RE: (15C) Julian Day to Day of Week [ISO; 12C Formula] - Dieter - 09-18-2016 05:39 PM

(08-26-2016 01:39 PM)Nick Wrote:  Formula: ISO Day of Week = JD MOD 7 + 1
(...)
Comments:

14 INT(x + .5) ' Rounding per precision loss during MOD

Yes, using FRAC for the mod function will produce roundoff errors.
But why don't you simply do it this way?

Code:
01 GSB 0
02 ENTER
03 ENTER
04 7
05 /
06 INT
07 7
08 *
09 -
10 1
11 +
12 RTN

That's shorter and does not require any rounding.
BTW, I assume the first step is not LBL 0 but GSB 0 (to call the JDN routine). ;-)

While we're at it: may I link to my HP35s calendar programs?
They convert from and to JDN, calculate the day of week and implement a ΔDAYS and DATE+ function and more.

Dieter