# TestFtime

#### ftime test

 ```* {(ftime '%B %Y' '-1 month')} - ({(ftime '%m' '-1 month')}) * {(ftime '%B %Y' '+0 month')} - ({(ftime '%m' '+0 month')}) * {(ftime '%B %Y' )} - ({(ftime '%m' )}) * {(ftime '%B %Y' '+1 month')} - ({(ftime '%m' '+1 month')}) -- bug? - expect Apr * {(ftime '%B %Y' '+2 month')} - ({(ftime '%m' '+2 month')}) -- bug? - expect May * {(ftime '%B %Y' '+3 month')} - ({(ftime '%m' '+3 month')}) -- bug? - expect Jun * {(ftime '%B %Y' 'next month')} - ({(ftime '%m' 'next month')}) -- bug? - expect Apr * {(ftime fmt='%A, %d %B %Y, %Hh%M' "Apr")} -- bug? - expect Apr ``` March 2024 - (03) April 2024 - (04) April 2024 - (04) May 2024 - (05) -- bug? - expect Apr June 2024 - (06) -- bug? - expect May July 2024 - (07) -- bug? - expect Jun May 2024 - (05) -- bug? - expect Apr Thursday, 18 April 2024, 00h00 -- bug? - expect Apr
oh no! where is April ??

Because today is March 31, it adds or removes 1 month as in "February 31" and "April 31" which do not exist and are recalculated to 2020-03-02 and 2020-05-01, see https://stackoverflow.com/questions/14584115/. --Petko March 31, 2020, at 04:00 PM

```!!!! Is this a likely solution ?
(:if ! equal {(ftime '%m' 'next month')} {(ftime '%m')}:)
* {(ftime '%B %Y' '+3 days')} - ({(ftime '%m' '+3 days')}) 'IF 1, expect Apr \0/'
(:else:)
* {(ftime '%B %Y' 'next month')} - ({(ftime '%m' 'next month')}) 'IF 2'
(:ifend:)

```

#### Is this a likely solution ?

• April 2024 - (04) 'IF 1, expect Apr \0/'

VKrishn March 31, 2020, at 04:32 PM

You can do nested ftime: --Petko March 31, 2020, at 04:57 PM

 ```inside: 15th of the current month: {(ftime "%Y-%m-15")} * inside+1month: {(ftime when=(ftime "%Y-%m-15")+1month fmt="%B %Y")} * inside-1month: {(ftime when=(ftime "%Y-%m-15")-1month fmt="%B %Y")} * inside+2months: {(ftime when=(ftime "%Y-%m-15")+2month fmt="%B %Y")} ``` inside: 15th of the current month: 2024-04-15 inside+1month: May 2024 inside-1month: March 2024 inside+2months: June 2024
thanks, this works!, VKrishn March 31, 2020, at 06:56 PM

```!!!! This could also work
(:if equal {(mod (ftime '%m' 'next month') (ftime '%m'))} 2:)
* {(ftime '%B %Y' '+3 days')} - ({(ftime '%m' '+3 days')}) 'IF 1, expect Apr \0/'
(:else:)
* {(ftime '%B %Y' 'next month')} - ({(ftime '%m' 'next month')}) 'IF 2'
(:ifend:)

```

#### This could also work

• May 2024 - (05) 'IF 2'

VKrishn March 31, 2020, at 07:06 PM

``` 0: 00.00 00.00 config start
1: 00.01 00.01 config end
2: 00.21 00.21 MarkupToHTML begin
3: 00.21 00.21 MarkupToHTML begin
4: 00.22 00.21 MarkupToHTML end
5: 00.22 00.21 MarkupToHTML begin
6: 00.22 00.22 MarkupToHTML end
7: 00.22 00.22 MarkupToHTML begin
8: 00.22 00.22 MarkupToHTML end
9: 00.22 00.22 MarkupToHTML begin
10: 00.22 00.22 MarkupToHTML end
`Peak memory: 3,709,200 bytes`