Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.acorn.programmer > #6395
| From | Martin <News03@avisoft.f9.co.uk> |
|---|---|
| Subject | Director's Calendar - weird bug |
| Newsgroups | comp.sys.acorn.programmer |
| Date | 2022-08-02 11:04 +0100 |
| Message-ID | <5a1199d0bfNews03@avisoft.f9.co.uk> (permalink) |
| References | <c8cf64115a.harriet@bazleyfamily.co.uk> <483b6a115a.harriet@bazleyfamily.co.uk> |
| Organization | None |
In article <483b6a115a.harriet@bazleyfamily.co.uk>,
Harriet Bazley <harriet@bazleyfamily.co.uk> wrote:
> On 2 Aug 2022 as I do recall,
> Harriet Bazley wrote:
> > Yesterday (i.e. before midnight on Monday) the !Calendar app
> > inside Director
> !Director.Apps.!Calendar
> > was telling me that it was Sun 1st August. Now it has rolled
> > over to correct itself to Tuesday 2nd August... while I was in
> > the middle of trying to debug it, so we shall never know what was
> > going on!
I hate bugs which hide.
It is much easier to debug if you add
time$ = TIME$
at the start, and replace all other TIME$ with time$.
Then you can set time$ to any value for debugging, without messing
with time itself.
> There is definitely a bug in this app affecting *every* first day
> of the month, which will always get displayed in the wrong column,
> as can be demonstrated by forcibly setting the value of TIME$ just
> before it gets checked. Put it back to 1st August, or 1st June,
> or 1st July, and they all go wrong in the same manner.
> It is too late at night and I can't get my head around why exactly
> the program is doing what it is doing: the calculation is
> (VAL(MID$(TIME$,5,2))+16+calday%) when calculating the icon handle
> to highlight in red for 'today', where the icon numbers start at 18
> for the first Sunday in a month, and where calday% starts off as
> the index into an array of day names where Sunday is 1, and is then
> cycled downwards according to the date value to form an arbitrary
> offset pointer:
> FOR n=VAL(MID$(TIME$,5,2)) TO 2 STEP -1
> PROCcalday_change(-1)
> NEXT n
That looks wrong - it certainly introduces an anomaly when it is the
1st, as calday% is set to the same number as for 2nd.
> DEF PROCcalday_change(nd)
> calday%=calday%+nd
> IF calday%<1 calday%=7
> IF calday%>7 calday%=1
> ENDPROC
> I would *assume* that the problem is that PROCcalday_change gets
> called the same number of times whether VAL(MID$(TIME$,5,2)) is 01
> or 02, since the FOR loop isn't being allowed to go below 2,
Agreed!
> but I don't see why that causes the value of calday% to
> (apparently) be one integer smaller than it ought to be if TIME$
> contains 01.
Agreed again.
> The routine that is printing the numbers from 1 to
> (no_of_days_in_month) puts day 1 in the wrong column when the value
> of calday% is wrong, too:
> FOR n=1 TO monthd(calmonth%)
> PROCset_icon_string(calendar%,(16+calday%+n),STR$(n))
> NEXT n
That is because calday% is wrong.
> But if I experimentally alter the FOR loop to go to 1 STEP -1 that
> makes everything go haywire, so there is clearly a good reason for
> this odd constraint!
I think it should be 1 STEP -1, as that corrects calday%.
Then the two calls to PROCset_icon_colour should be changed from +16
to +17 which corrects the colours.
I think!
It would be much easier to use Territory_ConvertTimeToOrdinals !!
Martin
--
Martin Avison
Note that unfortunately this email address will become invalid
without notice if (when) any spam is received.
Back to comp.sys.acorn.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 02:25 +0100
Director's Calendar - weird bug Martin <News03@avisoft.f9.co.uk> - 2022-08-02 11:04 +0100
Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 12:06 +0100
Re: Director's Calendar - weird bug Paul Sprangers <Paul@sprie.nl> - 2022-08-02 15:36 +0200
Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 18:45 +0100
Director developers (was: Director's Calendar - weird bug) Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 20:58 +0100
Re: Director developers Theo <theom+news@chiark.greenend.org.uk> - 2022-08-04 17:04 +0100
Re: Director developers Steve Fryatt <news@stevefryatt.org.uk> - 2022-08-04 20:42 +0100
Re: Director developers Theo <theom+news@chiark.greenend.org.uk> - 2022-08-05 00:00 +0100
Re: Director developers druck <news@druck.org.uk> - 2022-08-05 12:18 +0100
Re: Director's Calendar - weird bug Paul Sprangers <Paul@sprie.nl> - 2022-08-03 09:17 +0200
Re: Director's Calendar - weird bug Martin <News03@avisoft.f9.co.uk> - 2022-08-03 13:38 +0100
Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-03 14:16 +0100
Re: Director's Calendar - weird bug Martin <News03@avisoft.f9.co.uk> - 2022-08-03 16:00 +0100
Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-03 23:35 +0100
Re: Director's Calendar - weird bug Paul Sprangers <Paul@sprie.nl> - 2022-08-03 20:02 +0200
csiph-web