(15C) Julian Day to Day of Week [ISO; 12C Formula]
08-26-2016, 01:39 PM (This post was last modified: 08-27-2016 08:24 PM by Nick.)
Post: #1
 Nick Member Posts: 64 Joined: Aug 2016
(15C) Julian Day to Day of Week [ISO; 12C Formula]
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

14 INT(x + .5) ' Rounding per precision loss during MOD
09-18-2016, 05:39 PM (This post was last modified: 09-18-2016 05:57 PM by Dieter.)
Post: #2
 Dieter Senior Member Posts: 2,397 Joined: Dec 2013
RE: (15C) Julian Day to Day of Week [ISO; 12C Formula]
(08-26-2016 01:39 PM)Nick Wrote:  Formula: ISO Day of Week = JD MOD 7 + 1
(...)

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
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)