ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Date and Time Processing → Date Fields and Time Fields → Access to Date Fields and Time Fields

# Evaluating Date Fields and Time Fields

This example demonstrates calculations with date and time fields.

Other versions:
7.31 | 7.40 | **7.54**

## Source Code

```
DATA: ultimo TYPE d,
t1 TYPE t VALUE '000000',
t2 TYPE t,
diff TYPE i,
seconds TYPE i,
hours TYPE i.
"date calculation
ultimo = sy-datlo.
ultimo+6(2) = '01'.
ultimo -= 1.
cl_demo_output=>write(
|Last day of last month: { ultimo }| ).
"time calculation
t2 = sy-timlo.
diff = t2 - t1.
seconds = diff MOD 86400.
hours = seconds / 3600.
cl_demo_output=>display(
|Number of hours since midnight: { hours }| ).
```

## Description

In the first part of the `main`

method, the last day of the previous month
is assigned to `ultimo`

. First, `ultimo`

is filled
with the current date. Then the date is changed to the first day of the current month using an offset.
Finally, 1 is subtracted from `ultimo`

, so that the content of the field is
changed to the last day of the previous month. Before the subtraction takes place, the system converts `ultimo`

into the number of days since 01.01.0001 and converts the result back into a date.

In the second part, the number of hours between midnight and the current time are calculated. First,
the difference between the time fields is calculated. The difference is then converted into the total
number of seconds using the `MOD`

operation. A positive difference remains
unchanged. This step is only required for negative differences. Finally, the number of hours is calculated by dividing the number of seconds by 3600.