---
name: "GlobusTimeReltimeToMilliSec"
section: "3"
platform: "linux"
package: "libglobus-common-doc"
version: "18.14-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_time.h"
---

# GlobusTimeReltimeToMilliSec(3)

Time Types and Macros.

Part of [globus\_time.h(3)](/globus_time.h/3.md).

## NAME

globus\_time.h - Time Types and Macros.

## SYNOPSIS

`#include 'globus_types.h'`\
 `#include <time.h>`\

### Macros

\#define **GlobusTimeAbstimeSet**(Abstime,  Sec,  USec)\
 \#define **GlobusTimeAbstimeGet**(Abstime,  Sec,  USec)\
 \#define **GlobusTimeReltimeSet**(Reltime,  Sec,  USec)\
 \#define **GlobusTimeAbstimeDiff**(Reltime,  T1,  T2)\
 \#define **GlobusTimeReltimeToUSec**(SlpInt,  Reltime)\
 \#define **GlobusTimeReltimeToMilliSec**(Milliseconds,  Reltime)\
 \#define **GlobusTimeAbstimeInc**(Abstime,  Reltime)\
 \#define **GlobusTimeAbstimeGetCurrent**(Abstime)\
 \#define **GlobusTimeAbstimeCopy**(Dest,  Src)\
 \#define **GlobusTimeReltimeCopy**(Dest,  Src)\
 \#define **GlobusTimeReltimeMultiply**(Reltime,  Factor)\
 \#define **GlobusTimeReltimeDivide**(Reltime,  Factor)\

### Functions

**globus\_bool\_t** **globus\_time\_has\_expired** (const globus\_abstime\_t \*abstime)\
 **globus\_bool\_t** **globus\_time\_abstime\_is\_infinity** (const globus\_abstime\_t \*abstime)\
 **globus\_bool\_t** **globus\_time\_reltime\_is\_infinity** (const globus\_reltime\_t \*reltime)\
 int **globus\_abstime\_cmp** (const globus\_abstime\_t \*abstime\_1, const globus\_abstime\_t \*abstime\_2)\
 int **globus\_reltime\_cmp** (const globus\_reltime\_t \*reltime\_1, const globus\_reltime\_t \*reltime\_2)\

## Detailed Description

Time Types and Macros.

## Macro Definition Documentation

### #define GlobusTimeAbstimeCopy(Dest, Src)

**Value:**.PP

```
{                                                         \
   (Dest).tv_sec = (Src).tv_sec;                          \
   (Dest).tv_nsec = (Src).tv_nsec;                        \
}
```

Copy the absolute time

### #define GlobusTimeAbstimeDiff(Reltime, T1, T2)

**Value:**.PP

```
{                                                         \
    int __res = globus_abstime_cmp(&(T1), &(T2));         \
    if(__res < 0)                                         \
    {                                                     \
        (Reltime).tv_sec = (T2).tv_sec - (T1).tv_sec;     \
        (Reltime).tv_usec =                               \
                (((T2).tv_nsec - (T1).tv_nsec) / 1000);   \
        if((Reltime).tv_usec < 0)                         \
        {                                                 \
            (Reltime).tv_sec--;                           \
            (Reltime).tv_usec += 1000000;                 \
        }                                                 \
    }                                                     \
    else if(__res > 0)                                    \
    {                                                     \
        (Reltime).tv_sec = (T1).tv_sec - (T2).tv_sec;     \
        (Reltime).tv_usec =                               \
                (((T1).tv_nsec - (T2).tv_nsec) / 1000);   \
        if((Reltime).tv_usec < 0)                         \
        {                                                 \
            (Reltime).tv_sec--;                           \
            (Reltime).tv_usec += 1000000;                 \
        }                                                 \
    }                                                     \
    else                                                  \
    {                                                     \
        (Reltime).tv_sec = 0;                             \
        (Reltime).tv_usec = 0;                            \
    }                                                     \
}
```

Find the difference between the 2 absolute times.

### #define GlobusTimeAbstimeGet(Abstime, Sec, USec)

**Value:**.PP

```
{                                                         \
    Sec = (Abstime).tv_sec;                               \
    USec = ((Abstime).tv_nsec / 1000);                    \
}
```

Separates abstime structure into its components, sec and usec.

### #define GlobusTimeAbstimeGetCurrent(Abstime)

**Value:**.PP

```
    {                                                     \
        struct timeval __time;                            \
                                                          \
        gettimeofday(&__time, GLOBUS_NULL);               \
        (Abstime).tv_sec = __time.tv_sec;                 \
        (Abstime).tv_nsec = (__time.tv_usec * 1000);      \
    }
```

Get the current time

### #define GlobusTimeAbstimeInc(Abstime, Reltime)

**Value:**.PP

```
{                                                         \
    (Abstime).tv_nsec += ((Reltime).tv_usec * 1000);      \
    if((Abstime).tv_nsec >= 1000000000)                    \
    {                                                     \
        (Abstime).tv_sec++;                               \
        (Abstime).tv_nsec -= 1000000000;                  \
    }                                                     \
    (Abstime).tv_sec += (Reltime).tv_sec;                 \
}
```

Add reltime to abstime

### #define GlobusTimeAbstimeSet(Abstime, Sec, USec)

**Value:**.PP

```
{                                                         \
    GlobusTimeAbstimeGetCurrent(Abstime);                 \
    (Abstime).tv_nsec += (USec * 1000);                   \
    if((Abstime).tv_nsec >= 1000000000)                    \
    {                                                     \
        (Abstime).tv_sec += ((Abstime).tv_nsec / 1000000000);\
        (Abstime).tv_nsec = (Abstime).tv_nsec  % 1000000000; \
    }                                                     \
    (Abstime).tv_sec += Sec;                              \
}
```

Set the abstime structure to the sec and usec parameter values.

### #define GlobusTimeReltimeCopy(Dest, Src)

**Value:**.PP

```
{                                                         \
   (Dest).tv_sec = (Src).tv_sec;                          \
   (Dest).tv_usec = (Src).tv_usec;                        \
}
```

Copy the relative time

### #define GlobusTimeReltimeDivide(Reltime, Factor)

**Value:**.PP

```
{                                                         \
   (Reltime).tv_usec /= Factor;                           \
   (Reltime).tv_sec /= Factor;                            \
}
```

divide the reltime by factor

### #define GlobusTimeReltimeMultiply(Reltime, Factor)

**Value:**.PP

```
{                                                         \
   (Reltime).tv_usec *= Factor;                           \
   (Reltime).tv_sec *= Factor;                            \
                                                          \
    if((Reltime).tv_usec >= 1000000)                      \
    {                                                     \
        (Reltime).tv_sec += ((Reltime).tv_usec / 1000000);\
        (Reltime).tv_usec = (Reltime).tv_usec  % 1000000; \
    }                                                     \
}
```

Multiple the reltime by factor

### #define GlobusTimeReltimeSet(Reltime, Sec, USec)

**Value:**.PP

```
{                                                         \
    (Reltime).tv_usec = (USec);                           \
    (Reltime).tv_sec = Sec;                               \
    if((Reltime).tv_usec >= 1000000)                      \
    {                                                     \
        (Reltime).tv_sec += ((Reltime).tv_usec / 1000000);\
        (Reltime).tv_usec = (Reltime).tv_usec  % 1000000; \
    }                                                     \
}
```

Set the reltime structure to the sec and usec parameter values.

### #define GlobusTimeReltimeToMilliSec(Milliseconds, Reltime)

**Value:**.PP

```
{                                                         \
    Milliseconds = ((Reltime).tv_sec * 1000) +            \
                              ((Reltime).tv_usec)/ 1000;   \
}
```

Convert a relative time into a long in millisec units

### #define GlobusTimeReltimeToUSec(SlpInt, Reltime)

**Value:**.PP

```
{                                                         \
    SlpInt = ((Reltime).tv_sec * 1000000) +               \
                                     ((Reltime).tv_usec); \
}
```

Convert a relitive time into a long in usec units

## Function Documentation

### int globus\_abstime\_cmp (const globus\_abstime\_t \* abstime\_1, const globus\_abstime\_t \* abstime\_2)

Compare two absolute times.

This function returns an integer that reflects the comparison of two abstimes in the following way.

0 : values are the same. -1 : the first value is less than the second. 1 : the first value is greater than the second.

### int globus\_reltime\_cmp (const globus\_reltime\_t \* reltime\_1, const globus\_reltime\_t \* reltime\_2)

Compare two absolute times.

This function returns an integer that reflects the comparison of two reltimes in the following way.

0 : values are the same. -1 : the first value is less than the second. 1 : the first value is greater than the second.

### globus\_bool\_t globus\_time\_abstime\_is\_infinity (const globus\_abstime\_t \* abstime)

Returns a boolean that reflects whether or not abstime is infinity.

### globus\_bool\_t globus\_time\_has\_expired (const globus\_abstime\_t \* abstime)

Has abstime expired

Returns a boolean that reflects whether or not abstime is less than the current time.

### globus\_bool\_t globus\_time\_reltime\_is\_infinity (const globus\_reltime\_t \* reltime)

Returns a boolean that reflects whether or not reltime is infinity.

## Author

Generated automatically by Doxygen for globus\_common from the source code.
