Overview
The USER_CALND is a 4k Module comprising a selection of Calendar-related
programs from the PPCCJ, US-UPL and UPL; plus a set of TIME-Module based
routines taken from Poul Kaarup’s collection. It’s a
mixed bag loosely grouped around the Calendars theme, with a bit of everything.
The table below shows the
function names in alphabetical order with a brief description. For access to
full documentation and user instructions click on the URLs listed for each
program.
XROM |
Function |
Description |
Author |
Source |
|
18,00 |
-USER_CALND "M?DD" |
Section Header HP-67 Primary<> Secondary registers DOW to ALPHA Append Integer to Alpha Plot of Biorhythms Biorhythms for Today Calendar Plotting (US) Calendar Plotting (EU) Date of M-Day Financial days between Dates Days from Date Date of day# Day of Easter Day of Year M-days between Dates Hp-67 Maya Calendar1 Hp-67 Maya Calendar2 N-th. M-day of Month Quotient Remainder Sunrise, Sunset, Twilight Data Loading for 'SUN" Week of Date Week of Week Comparison test |
Ángel Martin HP Co. HP Co. Ángel Martin Frits Ferwerda Philippe Beaugrand Unknown? Roger Hill Kris Hendrieckx Poul Kaarup HP Co. Ángel Martin Poul Kaarup Poul Kaarup Poul Kaarup Poul Kaarup HP Co. HP Co. Poul Kaarup Ken Emery David B. Westcott Ángel Martin Poul Kaarup Poul Kaarup Poul Kaarup |
This Project Author's Collection Author's Collection This Project |
|
(*) The HP67-compatible functions are used by the MAYA Calendar programs, a
direct port from the HP-67 Calendars Solution Books.
If you’re interested in
these subjects you’re also encouraged to see the companion “JMB_Calendar”
module, with a collection of Jean-Marc Baillard’s
programs taken from his web site.
Below is a brief
description for some of the functions of the module for your convenience –
those without other reference and a few with very similar names from Poul Kaarup’s collection. You’re encouraged to check the
documentation provided in the linked documents for all the other functions and
programs.
ADOW
This
is a simple function to put in
ALPHA the “day of week” 3-letter string returned by
function DOW in the TIME Module.
DDATE |
This function calculates and displays the date X days
from the date in Y - expressed in the current date format.
STACK |
INPUT/OUTPUT |
OUTPUT/INPUT |
Y |
MM.DDYYYY |
|
X |
Number
of days |
Date1
+ X days |
Example: 28,022015, ENTER^, 50, XEQ “DDATE” => 19,042,015
This MCODE function is taken
face-value from the HP Securities Pac – where it is totally undocumented or
even unlisted in its contents. It seems to calculate the elapsed number of days
between 2 dates assuming a financial-standard convention of 360 days per year.
The dates must be expressed in MM,DDYYY format, with
the earliest date in the Y register and the later one in the X register.
STACK |
INPUTS |
OUTPUTS |
Y |
MM.DDYYYY(1) |
Z |
X |
MM.DDYYYY(2) |
No.
of Days |
L |
/ |
YYYY.MNDD(2) |
Example: Calculate the number of financial days
elapsed between July 21, 1959 and October 18, 2015.
10.182015, ENTER^, 7,211959
, XEQ “DAYS” => 20,539.00
Note: using the JDAY function from the JMB_CAL module we can obtain
the accurate natural number of days between these dates, via a conversion to
Julian number and a simple subtraction of those:
10.182015, XEQ “JDAY” => 2,457,314.00
7,211959 , XEQ “JDAY”
=> 2,436,771.00 Thus:
Delta = 20,543.00
DOD: Date of a
Day within year
Calculates
the date of a day number in a year
Prompts
Y
D input year and day number
The
Date is placed in the display.
Example: Input of 2015 and 70
gives 11.032015 i.e. march 11th 2015.
DOY: Day within
year for a given Date
Returns the day number in the year (1-365) for a given
date. Requires FIX2 and DMY format.
Prompts
DATE? -> Input a date in the form dd,mmyyyy
or press for today.
The
day number is placed in X
Example: Input of 11.032015 gives 70
i.e. march 11th of 2015 is day number 70 of that year
D?M: When is an M-day after a given Date?
M-day is defined as
specific day within a week, starting on Sunday:
i.e. sun=0, mon=1, tue=2,
wed=3, thu=4, fri=5, and
sat=6
Prompts DAY? -> Input (sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6)
Prompts DATE? -> Input date in
format dd,mmyyy
Displays the date
Example: Input of 2 and
27.022015 gives 27.02.2018 as the next Tuesday on a 27.02
MD?D: How many M-days between to
dates?
Requires DMY format. The routine will prompt for the
values, as follows:
Prompts DAY? -> Input d# (sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6)
Prompts DATE1? -> Input the first
(earlier) date
Prompts DATE2? -> Input the
second (later) date
Calculates the number
Example:
Input of 3, 27,022015 and 24,042015 gives 8,00
i.e. there are 8 Wednesdays between the dates
NM?M: When is the n-th. M-day of a specific month?
Requires DMY format. The routine will prompt for the
values, as follows:
Prompts DAY? -> Input d# (sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6)
Prompts N? -> Input the
number n
Prompts M,Y? ->
Input month and year,
Displays the result date
Example:
Input of 4, 2 and 5,2015 gives 14.15.2015 as the 2nd
Thursday in May 2015
WOD: Week of
Date
Calculates
what week number a certain date is in Requires DMY format.
Prompts DATE? -> Input a date in the form dd,mmyyyy or press for today.
The week number is placed
in X.
Example: Input of 11.032015 gives 11, i.e. march 11th
of 2015 is in week number 11 of that year
WOW: Week of
Week
Calculates
the dates of a specific week in a specific year
Prompts
W^D? -> Input a week number and a year.
Displays the start-date and end-date of the week.
Example: Input of 9 and 2015 gives 23.02-01.03.15