Product 1 of 1


Product number: QTDT

Funktionssammlung zum Umgang mit Datum & Zeit

Ready for shipping
This module enhances Fortran by date and time TYPEs with which elemental arithmetic and relational operations become possible.

Thereto, internally the qtDateTime MODULE overloads elemental Fortran operators:

  • arithmetic operators + , and - ,
  • the assignment operator =
  • and relational expression operators

So, for example, operations such as

TYPE(qtDT_T_Date) tDate1, tDate2, tDate3
! assignment of an array to the date TYPE:
tDate3 = (/31,12,2012/)
! difference of two dates in days
nDays = tDate2 - tDate1
! comparing two dates
IF ( tDate2 < tDate3 ) tDate2 = tDate1 + 7

become possible, and allow quick and easy coding. And the code becomes simple to understand, and so to maintain. The qtDateTime documentation (online-help) explains the details.
Beside these operator enhancements qtDateTime provides some other basic helpful functions when operating with date and time:

Group /
qtDateTime Function




Initialize qtDateTime

Date Functions

qtDT_F_DateToday Returns today's date
qtDT_F_DateToInteger Converts a date into an integer value.


Converts a date specification in an array into a date type


Checks if the date value is valid

qtDT_F_LeapYear Checks, if a year is a leap-year.
qtDT_F_DaysInYear Returns the number of days in a year
qtDT_F_DaysInMonth Returns the number of days of a month for the specified year
qtDT_F_CumulatedDays Returns the cumulated number of days in the months of a year before the given month
qtDT_F_DayOfYear Returns the day of year (1 - 365|366)
qtDT_F_DayOfWeek Returns the day of week (1 - 7) for a given date
qtDT_F_WeekOfYear Returns the week number for a given date
qtDT_F_DayOfYearToDate Determines the date for a given day of year (1 - 365|366)
qtDT_F_DateDifference Returns the difference of two dates in days
qtDT_F_DateAddDays Returns a date that is the result of adding days to a given date

Time Functions

qtDT_F_TimeNow Returns the current time
qtDT_F_TimeToRealMS Converts a time value into a real value
qtDT_F_TimeToIntegerMS Converts a time value into an integer value
qtDT_F_MillisecondsToTime Converts a time specification in milliseconds into a time type
qtDT_F_MillisecondsToDayTime Converts a time specification in milliseconds into a daytime type
qtDT_S_TimeToDayTime Converts a time type into a daytime type
qtDT_S_DayTimeToTime Converts a daytime type into a time type
qtDT_F_IsValidTime Checks if the time value is valid
qtDT_F_IsValidDayTime Checks if the daytime value is valid
qtDT_F_TimeDifference Returns the difference of two time values
qtDT_F_TimePlusTime Returns a time that is the result of adding two time values
qtDT_F_CurrentTimeStamp Get current date & time
qtDT_F_StopWatch Stopwatch functions (in milliseconds)

Scope of Supply

qtDateTime consists of a static library (.lib) and pre-compiled MODULE files (.mod). The procedures and their usage are described in a HTML online-help that displays in typical Internet browsers (such as Firefox, Opera and others; these can be offline).
For a quick start, a demonstration program (Ex01DateTime.f90) is provided, that shows many essential functions. For all compiler systems that are supported (see below) ready-to-use projects are provided, that include the demo program and all the other files needed. So, after loading the project, a "Build" will create the demo program (Ex01DateTime.exe). Compare the "Instructions for Installation and First Usage" below.
The source code of qtDateTime (just one single file) can also be purchased, and consists of Standard Fortran 95 which should be compilable by any Fortran 95 compiler on any operating system.

Supported Compiler Systems

At present the following binary variants exist:

  • Intel Visual Fortran (Win32 & Win64) v11.1 and higher
  • Silverfrost FTN95 (Win32) v7.1 and higher

It may be that compatible compilers can use qtDateTime too. Try yourself using the evaluation version (see below). If you own a compiler that is not supported by qtDateTime, but you would like to have a binding for this, let us know ( If there is sufficient demand, we will develop a binary version for your compiler.

Download qtDateTime

You can download an evaluation copy here which has a few functional limitations (1); download size: 780 KB):
For installation, a password is required that you can obtain from us free of charge. Please ask (send an email).

Instructions for Installation and First Usage:

  1. Create a directory on your PC (e.g. C:\qtDateTime).
  2. Copy the file you have downloaded into this directory.
  3. Unzip this file into this directory.
  4. Then you are ready to start one of the files suitable to your development system: Examples\IVF\IVF.sln,
    or Examples\FTN95\Ex01DateTime.ftn95p
    (a double click on the file symbol in Windows File Explorer should start-up your development environment).
  5. After this perform a "Build" (which creates the qtDateTime demo program Ex01DateTime.exe).
  6. The Ex01DateTime.exe should have been built and you can run it.
  7. If you want to try qtDateTime yourself, simply USE the MODULE and link the library. And there you go....

If you encounter difficulties, or something is not working properly, give us a call: +49(0)2361 4864760 or send an email.

(1) The evaluation copy allows the usage of all functions until the end of the year. When starting a program that calls qtDateTime functions a message box pops up at the beginning which displays a message accordingly. On purchase of a qtDateTime Licence you will receive a licence file, which activates the "full version", which can be used without limitation (no message box, no time limit).


The evaluation copy is converted into a fully functioning version by purchase of a qtDateTime licence (no re-installation necessary).
A qtDateTime licence grants a single named user (the licensee) the usage of the qtDateTime software for to create applications (.exe) that the licensee may distribute freely. This means, there are no runtime fees or any other royalties to be paid additionally. The complete licence conditions are to be found in the manual.

The licence is supplied (QTDT.0010) by sending a licence file via email. The licence file contains the data the licensee specifies (name and address), the licence number, and the licence key.

Technical Support

If you have questions, you detect a problem, you want an extension, etc., let us know: