anchor.diff:    end function secondsSinceEpoch
   
   
  -  function strftime(self,format)
  +  function strftime(self, format)
       !! Wrapper around C and C++ `strftime` function.
  -    class(datetime), intent(in)  :: self !! `datetime` instance
  +    class(datetime), intent(in) :: self !! `datetime` instance
       character(*), intent(in)  :: format !! format string
       character(:), allocatable :: strftime
       integer :: n, rc
       character(MAXSTRLEN) :: resultString
       resultString = ""
  -    rc = c_strftime(resultString,MAXSTRLEN,trim(format)//c_null_char,&
  +    rc = c_strftime(resultString, MAXSTRLEN, trim(format) // c_null_char, &
                       self % tm())
       strftime = trim(resultString)
       n = len(strftime)
  
positive.code:     tm % tm_min = self % minute
      tm % tm_hour = self % hour
      tm % tm_mday = self % day
      tm % tm_mon = self % month-1
      tm % tm_year = self % year-1900
      tm % tm_wday = self % weekday()
      tm % tm_yday = self % yearday()-1
      tm % tm_isdst = -1
    end function tm
  
  
negative.code:     ! Derived type for compatibility with C and C++ struct tm.
      ! Enables calling strftime and strptime using iso_c_binding.
      ! See http://www.cplusplus.com/reference/ctime/tm for reference.
      integer(c_int) :: tm_sec = 0 ! Seconds [0-60] (1 leap second)
      integer(c_int) :: tm_min = 0 ! Minutes [0-59]
      integer(c_int) :: tm_hour = 0 ! Hours [0-23]
      integer(c_int) :: tm_mday = 0 ! Day [1-31]
      integer(c_int) :: tm_mon = 0 ! Month [0-11]
      integer(c_int) :: tm_year = 0 ! Year - 1900
      integer(c_int) :: tm_wday = 0 ! Day of week [0-6]
      integer(c_int) :: tm_yday = 0 ! Days in year [0-365]
      integer(c_int) :: tm_isdst = 0 ! DST [-1/0/1]
    end type tm_struct
  
    interface
  