free42 Date Tools
Author: | Mitch Richling |
Updated: | 2024-11-21 16:49:09 |
Copyright 2024 Mitch Richling. All rights reserved.
Table of Contents
1. Metadata
The home for this HTML file is: https://richmit.github.io/hp42/date.html
Files related to this document may be found on github: https://github.com/richmit/hp42
Directory contents:
src |
- | The org-mode file that generated this HTML document |
src_42s |
- | Ready to convert source listings for 42s code in this document |
docs |
- | This html document and associated PDF |
bin |
- | Importable RAW program files |
2. Introduction
Aside from the date/time conversion routines, the rest is just wrappers for built in functions to make them print results when called from a program. Why? I
wanted to put things like DATE
in a nested custom menu, and have them print the date just as if I had directly put the function in a custom menu. ;) Now
that free42 has put these into a separate catalog menu, these are somewhat obsolete.
3. Functionality
3.2. Menu Code
The menu code is generated by the following bit of elisp. You must first define the MJR-generate-42-menu-code
and MJR-custom-x-gen
by evaluating the code blocks in the hp42s-meta.org
file.
(MJR-generate-42-menu-code "DMENU" 0 tbl 0 1 'stay 'up 'auto #'MJR-custom-gen-lab #'MJR-custom-gen-sub)
4. App Code
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Interactive Current Date @@@@ NAM: IDATE @@@@ OUT: X: Date encoded as a real @@@@ SFX: Prints date even when called from a program @@@@ UPD: 2021-03-16 LBL 95 FUNC 01 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 DATE @@## REQ:free42>=1.4.66 "Date: " ADATE @@## REQ:free42>=1.4.66 AVIEW RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Interactive Current Time @@@@ NAM: ITIME @@@@ OUT: X: Time in H.MM.SS format @@@@ SFX: Prints time even when called from a program @@@@ UPD: 2021-03-16 LBL 88 FUNC 01 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 TIME @@## REQ:free42>=1.4.66 "Time: " ATIME @@## REQ:free42>=1.4.66 AVIEW RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Current UNIX time @@@@ OUT: X: UNIX time @@@@ UPD: 2021-03-16 LBL "UTIME" FUNC 02 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 DATE @@## REQ:free42>=1.4.66 TIME @@## REQ:free42>=1.4.66 XEQ "DT→U" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Convert date & time to UNIX time @@@@ IN: Y: Date @@@@ IN: X: Time @@@@ OUT: X: UNIX time @@@@ UPD: 2021-03-16 LBL "DT→U" FUNC 21 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 FS? 67 @@@@ In Y.MD mode 1970.0101 FC? 67 @@@@ Not in Y.MD mode 1.011970 @@@@ Works for M.DY & D.MY RCL ST Z DDAYS @@## REQ:free42>=1.4.66 24 × X<>Y →HR + 3600 × RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Interactive U→DT (prints date & time) @@@@ IN: X: UNIX time @@@@ OUT: Y: Date @@@@ OUT: X: Time @@@@ SFX: Prints date & time even when called from a program @@@@ UPD: 2021-03-16 LBL "U→DT" FUNC 12 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 3600 ÷ RCL ST X 24 ÷ IP FS? 67 @@@@ In Y.MD mode 1970.0101 FC? 67 @@@@ Not in Y.MD mode 1.011970 @@@@ Works for M.DY & D.MY X<>Y DATE+ @@## REQ:free42>=1.4.66 X<>Y 24 MOD @@## REQ:free42>=1.4.66 →HMS X<>Y "Date: " ADATE @@## REQ:free42>=1.4.66 X<>Y ├"[LF]Time: " ATIME @@## REQ:free42>=1.4.66 AVIEW RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Interactive DATE+ (prints date) @@@@ NAM: IDATE+ @@@@ IN: Y: Date @@@@ IN: X: Integer @@@@ OUT: X: Date + Integer @@@@ UPD: 2021-03-16 LBL 92 FUNC 21 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 DATE+ @@## REQ:free42>=1.4.66 "Date: " ADATE @@## REQ:free42>=1.4.66 AVIEW RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Interactive DOW (prints day) @@@@ NAM: IDOW @@@@ IN: X: Date @@@@ OUT: X: Integer @@@@ SFX: Prints day of week even when called from a program @@@@ UPD: 2021-03-16 LBL 91 FUNC 11 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 DOW @@## REQ:free42>=1.4.66 "Day of Week: " 70 + XEQ IND ST X AVIEW RTN LBL 70 ├"SUN" RTN LBL 71 ├"MON" RTN LBL 72 ├"TUE" RTN LBL 73 ├"WED" RTN LBL 74 ├"THR" RTN LBL 75 ├"FRI" RTN LBL 76 ├"SAT" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Today's Julian day @@@@ OUT: X: Julian day for today @@@@ UPD: 2021-03-16 LBL "JDATE" FUNC 01 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 DATE @@## REQ:free42>=1.4.66 XEQ "D→J" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Interactive J→D (prints date) @@@@ NAM: J→D @@@@ IN: X: Date @@@@ OUT: X: Julian day @@@@ UPD: 2021-03-16 LBL "J→D" FUNC 11 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 2440587.5 - FS? 67 @@@@ In Y.MD mode 1970.0101 FC? 67 @@@@ Not in Y.MD mode 1.011970 @@@@ Works for M.DY & D.MY X<>Y DATE+ @@## REQ:free42>=1.4.66 "Date: " ADATE @@## REQ:free42>=1.4.66 AVIEW RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Today's Julian day @@@@ NAM: D→J @@@@ OUT: X: Julian day for today @@@@ UPD: 2021-03-16 LBL "D→J" FUNC 11 @@## REQ:free42>=2.5.24 L4STK @@## REQ:free42>=3.0 FS? 67 @@@@ In Y.MD mode 1970.0101 FC? 67 @@@@ Not in Y.MD mode 1.011970 @@@@ Works for M.DY & D.MY X<>Y DDAYS @@## REQ:free42>=1.4.66 2440587.5 + RTN END