|
◆ datetime_new()
elemental type(datetime) function, public datetime_class::datetime_new |
( |
integer, intent(in), optional |
year, |
|
|
integer, intent(in), optional |
month, |
|
|
integer, intent(in), optional |
day, |
|
|
integer, intent(in), optional |
hour, |
|
|
integer, intent(in), optional |
minute, |
|
|
integer, intent(in), optional |
msec, |
|
|
integer(kind=int_ll), intent(in), optional |
unixtime, |
|
|
character(len=*), intent(in), optional |
isodate, |
|
|
character(len=*), intent(in), optional |
simpledate |
|
) |
| |
Initialize a datetime object according to the provided arguments If no arguments are passed a missing object is created.
Notice that the optional parameter groups (year, month, hour, minute, msec), (unixtime), (isodate), (simpledate) are mutually exclusive, the results are not guaranteed if arguments of different groups are present. - Parametri
-
[in] | year | year a.C.; for reasons not yet investigated, only years >0 (a.C.) are allowed |
[in] | month | month, default=1 if year is present, it can also be outside the interval 1-12, the function behaves reasonably in that case |
[in] | day | day, default=1 if year is present, it can have non canonical values too |
[in] | hour | hours, default=0 if year is present, it can have non canonical values too |
[in] | minute | minutes, default=0 if year is present, it can have non canonical values too |
[in] | msec | milliseconds, default=0 if year is present, it can have non canonical values too |
[in] | unixtime | initialize the object to unixtime seconds after 1/1/1970, UNIX convention, notice that this is an 8-byte integer |
[in] | isodate | initialize the object to a date expressed as a string YYYY-MM-DD hh:mm:ss.msc , (iso format), the initial part YYYY-MM-DD is compulsory, the remaining part is optional |
[in] | simpledate | initialize the object to a date expressed as a string YYYYMMDDhh:mm:ss.msc , (iso format), the initial part YYYYMMDD is compulsory, the remaining part is optional |
Definizione alla linea 720 del file datetime_class.F90.
723 END FUNCTION datetime_ge
726 ELEMENTAL FUNCTION datetime_le(this, that) RESULT(res)
727 TYPE(datetime), INTENT(IN) :: this, that
730 IF (this == that) THEN
732 ELSE IF (this < that) THEN
738 END FUNCTION datetime_le
741 FUNCTION datetime_add(this, that) RESULT(res)
742 TYPE(datetime), INTENT(IN) :: this
743 TYPE(timedelta), INTENT(IN) :: that
744 TYPE(datetime) :: res
746 INTEGER :: lyear, lmonth, lday, lhour, lminute, lmsec
748 IF (this == datetime_miss .OR. that == timedelta_miss) THEN
751 res%iminuti = this%iminuti + that%iminuti
752 IF (that%month /= 0) THEN
753 CALL getval(res, year=lyear, month=lmonth, day=lday, hour=lhour, &
754 minute=lminute, msec=lmsec)
755 CALL init(res, year=lyear, month=lmonth+that%month, day=lday, &
756 hour=lhour, minute=lminute, msec=lmsec)
760 END FUNCTION datetime_add
763 ELEMENTAL FUNCTION datetime_subdt(this, that) RESULT(res)
764 TYPE(datetime), INTENT(IN) :: this, that
765 TYPE(timedelta) :: res
767 IF (this == datetime_miss .OR. that == datetime_miss) THEN
770 res%iminuti = this%iminuti - that%iminuti
774 END FUNCTION datetime_subdt
777 FUNCTION datetime_subtd(this, that) RESULT(res)
778 TYPE(datetime), INTENT(IN) :: this
779 TYPE(timedelta), INTENT(IN) :: that
780 TYPE(datetime) :: res
782 INTEGER :: lyear, lmonth, lday, lhour, lminute, lmsec
784 IF (this == datetime_miss .OR. that == timedelta_miss) THEN
787 res%iminuti = this%iminuti - that%iminuti
788 IF (that%month /= 0) THEN
789 CALL getval(res, year=lyear, month=lmonth, day=lday, hour=lhour, &
790 minute=lminute, msec=lmsec)
791 CALL init(res, year=lyear, month=lmonth-that%month, day=lday, &
792 hour=lhour, minute=lminute, msec=lmsec)
796 END FUNCTION datetime_subtd
803 SUBROUTINE datetime_read_unit(this, unit)
804 TYPE(datetime), INTENT(out) :: this
805 INTEGER, INTENT(in) :: unit
806 CALL datetime_vect_read_unit((/this/), unit)
808 END SUBROUTINE datetime_read_unit
815 SUBROUTINE datetime_vect_read_unit(this, unit)
816 TYPE(datetime) :: this(:)
|