Douglas McIlroy <douglas.mcil...@dartmouth.edu> writes:

>>If someone knows an elegant way to calculate the number of days from
>> time periods in groff, I'd be very thankful.
>
> How about something like this:
>
> .PS 5i
> define days { line right $1 }
> jan = 31
> feb = 28
> mar = 31
> apr = 30
> may = 31
> ...
> define tick { line up 1
>               $1 at last line.s below }
>
> tick("3/15")
> days(mar-15+apr+may+5)
> tick("6/5")
> .PE

Thank you for the starter.

And a bit more work also gives me a horizontal axis with the years, but
I still have to read a lot -- "move 100i" looks a bit strange to me,
the days per year need some scaling, I guess:

.PS 5i
define days { line right $1 }

define diy {                            # days in year
        if $1 == 2024 then {
                ndays = 366
        } else {
                ndays = 365
        }
}

jan = 31
feb = 28
mar = 31
apr = 30
may = 31
jun = 30
jul = 31
aug = 31
sep = 30
oct = 31
nov = 30
dec = 31

define tick { line up 1
              $1 at last line.s below }

tick("3/15")
days(mar-15+apr+may+5)
tick("6/5")

down;

move 100i;

right;

for i = 2023 to 2025 do
{
        
diy(i)
        if i == 2023 then
        {
                tick("2023")
        }
        if i == 2024 then
        {
                tick("2024")
        }
        if i == 2025 then
        {
                tick("2025")
        }
        line right ndays
}

.PE

Reply via email to