anchor.diff:        ENDIF
       ELSEIF(self%day < 1)THEN
         self%month = self%month-1
  -      self%day = self%day+daysInMonth(self%month,self%year)
         IF(self%month < 1)THEN
           self%year = self%year+self%month/12-1
           self%month = 12+MOD(self%month,12)
         ENDIF
  +      self%day = self%day+daysInMonth(self%month,self%year)
       ELSE
         EXIT
       ENDIF 
  
positive.code:   INTEGER,PARAMETER,DIMENSION(12) :: &
            days = [31,28,31,30,31,30,31,31,30,31,30,31]
  
    IF(month<1.OR.month>12)THEN
      daysInMonth = 0
      RETURN 
    ENDIF
  
    IF(month==2.AND.isLeapYear(year))THEN
      daysInMonth = 29
    ELSE
      daysInMonth = days(month)
  
negative.code: !
  ! MODULE: datetime
  !
  ! VERSION: 0.3.1
  !
  ! LAST UPDATE: 2014-03-31
  !
  ! AUTHOR: Milan Curcic
  !         University of Miami
  