> hi don, long time no chat.

snip...

>

> I scoured the wayback machine for this clip we [with Jody, Larry,

> Harvey, et.al.] worked on years ago. it includes an elapsed-time

> counter you may find useful.

Thanks a bunch. Worthy of study. I decided that what I might want to

do is create an epoch time for my start and stop and thus can simply

subtract to see how much time I have into it. Of course, I haven't

gotten to the timer part yet (to prompt me periodically to see if I have

switched tasks without changing my project) and many other parts. I

thought this might be a good stepping stone.

I have a copy posted over here:

http://htmlfixit.com/blog/?p=356

I have tried to comment it pretty heavily. I already see a few places I

could adjust it I suppose. Shall have to work on that.

Here it is (perhaps with lots of wrapped lines?):

;*** Effort by Don Passenger

;*** don at htmlfixit dot com

;*** Creates EPOCH Time (seconds since Jan 1, 1970 to current)

;*** from time on computer

;*** copy posted at:

;*** http://htmlfixit.com/blog/?p=356

;*******************************************************

^!InsertText +++++++++++++++++get date off system++++++++++++++++++++++^P

:GrabDates

;get year

^!Set %year%="^$GetDate(yyyy)$"

;get month (no leading zeros)

^!Set %month%="^$GetDate(m)$"

;get days (no leading zeros)

^!Set %day%="^$GetDate(d)$"

;get hours (no leading zeros)

^!Set %hours%=^[h^]

;get minutes (no leading zeros)

^!Set %minutes%=^[n^]

;get seconds (no leading zeros)

^!Set %seconds%=^[ss^]

:FigureEpochTime

;Method Used:

;base year (from Jan 1 70 to Jan 1 2007)

;+ seconds in each year after 2006

;+ seconds in each month in current year

;+ seconds in days up to today

;+ seconds in hours, minutes, seconds of today

;I disregard leap seconds and figure I'll

;be dead before the next non-leap year

;divisible by four

:CalculateSecondsInYearsFrom2006

^!InsertText ++++++++++++++calc seconds in years after

2006++++++++++++++++++^P

;calculate days in years between 12/31/2006

;and current year (whole years only)

^!Set %baseyear%="2006"

^!Set %numberofyears%="^$Calc(^%year%-2006-1)$"

:Loop_years_to_seconds

^!Set %counter%="0"

^!Set %secondsinyears%="0"

;skip years entirely if is currently 2007

^!If ^%numberofyears% = 0 Loop_months_to_seconds

:next_year

;first time thiw becomes 2007 and then it

;counts up to current year

^!Inc %baseyear%

;set days in month for non-leap years

^!SetArray %daysinmonth%=31;28;31;30;31;30;31;31;30;31;30;31

;determine if year being worked on is leap year

;fix Feb days if yes

^!If ^$calc(^%baseyear% mod 4)$<>0 Skip

^!Set %daysinmonth2%=29

:calcsecondsinyears

;abort any time we are out of whole years 2007-

^!If ^%numberofyears% = 0 Loop_months_to_seconds

;in counter so that we can get days in each month of year

^!Inc %counter%

;add to seconds in year the active month in the active year

^!Set

%secondsinyears%=^$Calc(^%secondsinyears%+(^%daysinmonth^%counter%%*86400))$

;this is just for testing to show the output after each month

;while calculating the active year

^!InsertText ^%secondsinyears% to ^%baseyear%-^%counter%

^$Calc(^%secondsinyears%+1167609600)$^P

;do the next month in active year unless we are at 12 (ie no more months)

^!If ^%counter% <> 12 calcsecondsinyears

;reduce years to be calculated by one and recycle to calc seconds in

next year

^!Dec %numberofyears%

;reset month counter to zero

^!Set %counter%="0"

;goto next year 2008-

^!Goto next_year

:Loop_months_to_seconds

^!InsertText ++++++++++++++++++calc seconds in whole months of current

year++++++++++++++++^P

;calculate days in whole months for current year

;set the months to 0 so we can process each month

^!Set %basemonth%="0"

;start the base counter

^!Set %secondsinmonths%="0"

;get us out of here if it is Jan

^!If ^$Calc(^%basemonth%+1)$ = ^%month% Loop_days_to_seconds

;set months array for non-leap years

^!SetArray %daysinmonth%=31;28;31;30;31;30;31;31;30;31;30;31

;if current year is leap year, correct Feb

^!If ^$calc(^%year% mod 4)$<>0 Skip

^!Set %daysinmonth2%=29

:next_month

;start with month 1 (Jsn first time and increas by one each time)

^!Inc %basemonth%

;if it is current month we are done with months

^!If ^%basemonth% = ^%month% Loop_days_to_seconds

:calcsecondsinmonths

;do math to get seconds in current month and add to prior months we

calculated

;on previousl iterations of this

^!Set

%secondsinmonths%=^$Calc(^%secondsinmonths%+(^%daysinmonth^%basemonth%%*86400))$

;insert text is just for testing so we can see we are where we belong at

the end of

;each successive month of calculation

^!InsertText ^%secondsinmonths% to Month-^%basemonth%

^$Calc(^%secondsinmonths%+^%secondsinyears%+1167609600)$^P

;repeat until we hit current month (tested above)

^!Goto next_month

:Loop_days_to_seconds

^!InsertText +++++++++++++++++++++calc seconds for whole days current

month+++++++++++++++++^P

;set base variable for calculation of seconds in whole days in current month

^!Set %baseday%="0"

^!Set %secondsindays%="0"

:next_day

;increment baseday to 1 first iteration and increasing on each pass

^!Inc %baseday%

;get us out of here when no more full days left to calc

^!If ^%baseday% = ^%day% Loop_hours_to_seconds

:calcsecondsindays

;do math adding second for active day to prior whole days of seconds in

current month

^!Set %secondsindays%=^$Calc(^%secondsindays%+86400)$

;insert text just for testing to see if we are where we belong

^!InsertText Current Month Day-^%baseday%

^$Calc(^%secondsindays%+^%secondsinmonths%+^%secondsinyears%+1167609600)$^P

;repeat until we are out of whole days in current month (tested above)

^!Goto next_day

:Loop_hours_to_seconds

^!InsertText +++++++++++++++++++++++Calc Whole Hours Today to

Seconds++++++++++++++++++++++++++++++^P

;calculate seconds in whole hours today

;set the hours to 0 so we can process each one

^!Set %basehour%="0"

;start the base counter

^!Set %secondsinhours%="0"

;get us out of here if it is < Midnight+1hour

^!If ^$Calc(^%basehour%+1)$ = ^%hours% Loop_minutes_to_seconds

:next_hour

;start with hour 1 (12:00:01am first time and increase by one each time)

^!Inc %basehour%

;if it is current month we are done with months

^!If ^%basehour% > ^%hours% Loop_minutes_to_seconds

:calcsecondsinhours

;do math to add 3600 seconds to total for this hour

^!Set %secondsinhours%=^$Calc(^%secondsinhours%+3600)$

;insert text is just for testing so we can see we are where we belong at

the end of

;each successive month of calculation

^!InsertText Seconds in Hour ^%basehour%

^$Calc(^%secondsinhours%+^%secondsindays%+^%secondsinmonths%+^%secondsinyears%+1167609600)$^P

;repeat until we hit current month (tested above)

^!Goto next_hour

:Loop_minutes_to_seconds

^!InsertText +++++++++++++++++++Full Minutes to Seconds Plus

Seconds++++++++++++++++++++++++++^P

;calculate seconds in whole minutes today AND the REMAINING SECONDS TOO

^!Set %secondsinminutes%=^$Calc((^%minutes%*60)+^%seconds%)$

;insert text is just for testing so we can see we are where we belong at

the end of

;each successive month of calculation

^!InsertText EPOCH TIME:

^$Calc(^%secondsinminutes%+^%secondsinhours%+^%secondsindays%+^%secondsinmonths%+^%secondsinyears%+1167609600)$^P

^!Goto end