TIP: Click on subject to list as thread! ANSI
echo: commo
to: FRED BRUCKER
from: JIM BENNETT
date: 1995-06-27 13:08:00
subject: Conversion Macro

Hi Fred,
Here's the macro so far.  It's very close to completion at this
point (%trim_num = # days to backdate)..macro A/O 27 Mar 95:
{:START}
 ----------------------  Initialize Variables ----------------------
   {SETV yr_lgth,365}{SETV day,%_day}{SETV jul_yr,%_yea}
   {SETV trim_num,30} <-HARD CODED FOR TESTING ONLY  *******
 ----------------------  Is This A Leap Year? ----------------------
   {CALL leap_test}
 ---------------------- Pad %_mon If Required ----------------------
   {LENG %_mon}{COMP %_len,1}{IFCO ,jan_test}
   {COMP %_mon,10}{IFCO-L ,convert}
   {SUBS test,1,1,%_mon}{COMP test,0}{IFCO 90}
   {SETV %_mon,0%_mon}
 ------------------------- Is This January? ------------------------
 {:JAN_TEST}
   {COMP %_mon,01}{IFCO jan}
 --------------------  Convert Today To Julian ---------------------
 {:CONVERT}
   {CALL %_mon%_set}
   {SETV jul_day,%beg_mo}
   {DECR %day}
   {INCR %jul_day,%day}
 ----------------------  Compute Target Date -----------------------
 {:TARGET}
 ---------- Determine if Target Date Will Be in Last Year ----------
   {DECR trim_num}
   {COMP %jul_day,%trim_num}
   {IFCO-LE ,adjust}
   {DECR %jul_yr}
 -------------------- Was Last Year A Leap Year? -------------------
   {CALL leap_test}
   {INCR %jul_day,%yr_lgth}
 -------------------- Time To Figure Out Target --------------------
  {:ADJUST}
   {DECR %jul_day,%trim_num}
 -------------- Convert Target From Julian To MM/DD/YY -------------
   {CALL get_mo}
   {CALL get_day}
   {SETV target,%jul_mo%/%jul_day%/%jul_yr}
   {CLEA}{DISP 5,5,0E,Target is: %target}  <- DISPLAY FOR TESTING ONLY
 ---------------------- Cleanup The Variables ----------------------
   {SETV jul_yr}{SETV jul_mo}{SETV jul_day}
   {SETV yr_lgth}{SETV trim_num}{SETV beg_mo}
   {SETV day}{SETV month}
   {} <- TEST END POINT ** FINAL WILL PASS "%TARGET" TO TRIM ROUTINE
 --------------------------- Subroutines ---------------------------
 {:GET_MO}
   {SETV month,12}
  {:GLOOP}
   {LENG %month}{COMP %_len,1}{IFCO ,GL1}
   {SETV month,0%month}
  {:GL1}
   {CALL %month%_set}
   {COMP %jul_day,%beg_mo}{IFCO-GE l_exit}
   {DECR month}{GOTO gloop}
  {:L_EXIT}
   {SETV jul_mo,%month}                          {RETU}
 {:GET_DAY}
   {CALL %jul_mo%_set}
   {DECR %jul_day,%beg_mo}{INCR %jul_day}
   {LENG %jul_day}
   {COMP %_len,1}{IFCO ,retu}
   {SETV jul_day,0%jul_day}                      {RETU}
 {:JAN}
   {SETV %jul_day,%day}
   {LENG %jul_day}{COMP %_len,1}{IFCO ,target}
   {SETV %jul_day,0%jul_day}                     {GOTO target}
 {:LEAP_ADJ}
   {COMP leap,y}{IFCO ,retu}
   {INCR %beg_mo}                                {RETU}
 {:LEAP_TEST}
   {COMP %jul_yr,00}{IFCO LA_1}
   {SETV test,%jul_yr}
   {DIVI test,4}
   {COMP %_rem,0}{SETV test}{IFCO ,retu}
  {:LT_1}
   {SETV leap,y}{SETV yr_lgth,366}               {RETU}
 {:RETU}                                         {RETU}
 --------------- Julian Values For 1st Day Of Months ---------------
 {:01_SET}{SETV beg_mo,1}                        {RETU}
 {:02_SET}{SETV beg_mo,32}                       {RETU}
 {:03_SET}{SETV beg_mo,60}  {CALL leap_adj}      {RETU}
 {:04_SET}{SETV beg_mo,91}  {CALL leap_adj}      {RETU}
 {:05_SET}{SETV beg_mo,121} {CALL leap_adj}      {RETU}
 {:06_SET}{SETV beg_mo,152} {CALL leap_adj}      {RETU}
 {:07_SET}{SETV beg_mo,182} {CALL leap_adj}      {RETU}
 {:08_SET}{SETV beg_mo,213} {CALL leap_adj}      {RETU}
 {:09_SET}{SETV beg_mo,244} {CALL leap_adj}      {RETU}
 {:10_SET}{SETV beg_mo,274} {CALL leap_adj}      {RETU}
 {:11_SET}{SETV beg_mo,305} {CALL leap_adj}      {RETU}
 {:12_SET}{SETV beg_mo,335} {CALL leap_adj}      {RETU}
                                                                              
                    
--- JCQWK
---------------
* Origin: Meredith Place Mail Drop (1:300/15)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.