UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Timespan.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Math/Interval.h"
9
10class FArchive;
11class FOutputDevice;
12class FString;
13class UObject;
14template <typename ElementType> struct TIntervalTraits;
15
16
20namespace ETimespan
21{
23 inline constexpr int64 MaxTicks = 9223372036854775807;
24
26 inline constexpr int64 MinTicks = -9223372036854775807 - 1;
27
29 inline constexpr int64 NanosecondsPerTick = 100;
30
32 inline constexpr int64 TicksPerDay = 864000000000;
33
35 inline constexpr int64 TicksPerHour = 36000000000;
36
38 inline constexpr int64 TicksPerMicrosecond = 10;
39
41 inline constexpr int64 TicksPerMillisecond = 10000;
42
44 inline constexpr int64 TicksPerMinute = 600000000;
45
47 inline constexpr int64 TicksPerSecond = 10000000;
48
50 inline constexpr int64 TicksPerWeek = 6048000000000;
51
53 inline constexpr int64 TicksPerYear = 365 * TicksPerDay;
54}
55
56
76{
77public:
78
81 : Ticks(0)
82 { }
83
97
112
128
142
143public:
144
151 {
152 return FTimespan(Ticks + Other.Ticks);
153 }
154
161 {
162 Ticks += Other.Ticks;
163 return *this;
164 }
165
174 {
175 return FTimespan(-Ticks);
176 }
177
185 {
186 return FTimespan(Ticks - Other.Ticks);
187 }
188
196 {
197 Ticks -= Other.Ticks;
198 return *this;
199 }
200
208 {
209 return FTimespan((int64)((double)Ticks * Scalar));
210 }
211
219 {
220 Ticks = (int64)((double)Ticks * Scalar);
221 return *this;
222 }
223
231 {
232 return FTimespan((int64)((double)Ticks / Scalar));
233 }
234
242 {
243 Ticks = (int64)((double)Ticks / Scalar);
244 return *this;
245 }
246
254 {
255 return FTimespan(Ticks % Other.Ticks);
256 }
257
265 {
266 Ticks = Ticks % Other.Ticks;
267 return *this;
268 }
269
276 bool operator==(const FTimespan& Other) const
277 {
278 return (Ticks == Other.Ticks);
279 }
280
287 bool operator!=(const FTimespan& Other) const
288 {
289 return (Ticks != Other.Ticks);
290 }
291
298 bool operator>(const FTimespan& Other) const
299 {
300 return (Ticks > Other.Ticks);
301 }
302
309 bool operator>=(const FTimespan& Other) const
310 {
311 return (Ticks >= Other.Ticks);
312 }
313
320 bool operator<(const FTimespan& Other) const
321 {
322 return (Ticks < Other.Ticks);
323 }
324
331 bool operator<=(const FTimespan& Other) const
332 {
333 return (Ticks <= Other.Ticks);
334 }
335
336public:
337
349 CORE_API bool ExportTextItem(FString& ValueStr, FTimespan const& DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope) const;
350
357 {
358 return (int32)(Ticks / ETimespan::TicksPerDay);
359 }
360
370 {
371 return FTimespan(Ticks >= 0 ? Ticks : -Ticks);
372 }
373
384
395
405
412 {
413 return (int32)(Ticks % ETimespan::TicksPerSecond);
414 }
415
423 {
424 return (int32)((Ticks / ETimespan::TicksPerHour) % 24);
425 }
426
434 {
435 return (int32)((Ticks / ETimespan::TicksPerMinute) % 60);
436 }
437
445 {
446 return (int32)((Ticks / ETimespan::TicksPerSecond) % 60);
447 }
448
455 {
456 return Ticks;
457 }
458
465 double GetTotalDays() const
466 {
467 return ((double)Ticks / ETimespan::TicksPerDay);
468 }
469
476 double GetTotalHours() const
477 {
478 return ((double)Ticks / ETimespan::TicksPerHour);
479 }
480
487 double GetTotalMicroseconds() const
488 {
489 return ((double)Ticks / ETimespan::TicksPerMicrosecond);
490 }
491
498 double GetTotalMilliseconds() const
499 {
500 return ((double)Ticks / ETimespan::TicksPerMillisecond);
501 }
502
509 double GetTotalMinutes() const
510 {
511 return ((double)Ticks / ETimespan::TicksPerMinute);
512 }
513
520 double GetTotalSeconds() const
521 {
522 return ((double)Ticks / ETimespan::TicksPerSecond);
523 }
524
535 CORE_API bool ImportTextItem(const TCHAR*& Buffer, int32 PortFlags, UObject* Parent, FOutputDevice* ErrorText);
536
543 bool IsZero() const
544 {
545 return (Ticks == 0LL);
546 }
547
554 CORE_API bool Serialize(FArchive& Ar);
555
559 CORE_API bool NetSerialize(FArchive& Ar, class UPackageMap* Map, bool& bOutSuccess);
560
580 CORE_API FString ToString() const;
581
602 CORE_API FString ToString(const TCHAR* Format) const;
603
604public:
605
613 static FTimespan FromDays(double Days)
614 {
615 return FTimespan((int64)FMath::FloorToDouble(Days * ETimespan::TicksPerDay + 0.5));
616 }
617
625 static FTimespan FromHours(double Hours)
626 {
627 return FTimespan((int64)FMath::FloorToDouble(Hours * ETimespan::TicksPerHour + 0.5));
628 }
629
638 {
639 return FTimespan((int64)FMath::FloorToDouble(Microseconds * ETimespan::TicksPerMicrosecond + 0.5));
640 }
641
650 {
651 return FTimespan((int64)FMath::FloorToDouble(Milliseconds * ETimespan::TicksPerMillisecond + 0.5));
652 }
653
662 {
663 return FTimespan((int64)FMath::FloorToDouble(Minutes * ETimespan::TicksPerMinute + 0.5));
664 }
665
674 {
675 return FTimespan((int64)FMath::FloorToDouble(Seconds * ETimespan::TicksPerSecond + 0.5));
676 }
677
687 {
689 }
690
700 {
702 }
703
720 static CORE_API bool Parse(const FString& TimespanString, FTimespan& OutTimespan);
721
729 static double Ratio(FTimespan Dividend, FTimespan Divisor)
730 {
731 if (Divisor == FTimespan::Zero())
732 {
733 return 0.0;
734 }
735
736 return (double)Dividend.GetTicks() / (double)Divisor.GetTicks();
737 }
738
748 {
749 return FTimespan(0);
750 }
751
752public:
753
754 friend class UObject;
755
764
772
773protected:
774
785
786private:
788
789private:
790
792 int64 Ticks;
793};
794
795template <>
797{
798 static FTimespan Max()
799 {
800 return FTimespan::MaxValue();
801 }
802
804 {
805 return FTimespan::MinValue();
806 }
807};
808
816{
817 return Timespan.operator*(Scalar);
818}
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FTimespan operator*(float Scalar, const FTimespan &Timespan)
Definition Timespan.h:815
@ Milliseconds
@ Microseconds
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition OutputDevice.h:133
Definition Object.h:95
Definition CoreNet.h:191
Definition Timespan.h:21
constexpr int64 TicksPerMicrosecond
Definition Timespan.h:38
constexpr int64 TicksPerDay
Definition Timespan.h:32
constexpr int64 TicksPerYear
Definition Timespan.h:53
constexpr int64 MinTicks
Definition Timespan.h:26
constexpr int64 NanosecondsPerTick
Definition Timespan.h:29
constexpr int64 TicksPerWeek
Definition Timespan.h:50
constexpr int64 TicksPerMillisecond
Definition Timespan.h:41
constexpr int64 TicksPerMinute
Definition Timespan.h:44
constexpr int64 TicksPerHour
Definition Timespan.h:35
constexpr int64 TicksPerSecond
Definition Timespan.h:47
constexpr int64 MaxTicks
Definition Timespan.h:23
Definition Timespan.h:76
bool operator==(const FTimespan &Other) const
Definition Timespan.h:276
FTimespan operator*(double Scalar) const
Definition Timespan.h:207
static FTimespan FromDays(double Days)
Definition Timespan.h:613
int32 GetDays() const
Definition Timespan.h:356
friend struct Z_Construct_UScriptStruct_FTimespan_Statics
Definition Timespan.h:787
static CORE_API bool Parse(const FString &TimespanString, FTimespan &OutTimespan)
Definition Timespan.cpp:112
int32 GetFractionMilli() const
Definition Timespan.h:391
bool operator>=(const FTimespan &Other) const
Definition Timespan.h:309
static FTimespan FromHours(double Hours)
Definition Timespan.h:625
int64 GetTicks() const
Definition Timespan.h:454
FTimespan operator%(const FTimespan &Other) const
Definition Timespan.h:253
bool operator<=(const FTimespan &Other) const
Definition Timespan.h:331
FTimespan & operator-=(const FTimespan &Other)
Definition Timespan.h:195
static FTimespan FromMicroseconds(double Microseconds)
Definition Timespan.h:637
int32 GetHours() const
Definition Timespan.h:422
friend CORE_API uint32 GetTypeHash(const FTimespan &Timespan)
Definition Timespan.cpp:204
int32 GetFractionNano() const
Definition Timespan.h:401
int32 GetSeconds() const
Definition Timespan.h:444
FTimespan & operator*=(double Scalar)
Definition Timespan.h:218
FTimespan & operator%=(const FTimespan &Other)
Definition Timespan.h:264
bool operator!=(const FTimespan &Other) const
Definition Timespan.h:287
static FTimespan MinValue()
Definition Timespan.h:699
CORE_API bool NetSerialize(FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess)
Definition Timespan.cpp:53
FTimespan & operator+=(const FTimespan &Other)
Definition Timespan.h:160
static double Ratio(FTimespan Dividend, FTimespan Divisor)
Definition Timespan.h:729
int32 GetFractionTicks() const
Definition Timespan.h:411
bool operator>(const FTimespan &Other) const
Definition Timespan.h:298
FTimespan operator-() const
Definition Timespan.h:173
static FTimespan FromMinutes(double Minutes)
Definition Timespan.h:661
double GetTotalMicroseconds() const
Definition Timespan.h:487
double GetTotalDays() const
Definition Timespan.h:465
friend CORE_API FArchive & operator<<(FArchive &Ar, FTimespan &Timespan)
Definition Timespan.cpp:198
int32 GetFractionMicro() const
Definition Timespan.h:380
FTimespan(int32 Days, int32 Hours, int32 Minutes, int32 Seconds, int32 FractionNano)
Definition Timespan.h:138
double GetTotalSeconds() const
Definition Timespan.h:520
double GetTotalMinutes() const
Definition Timespan.h:509
FTimespan(int32 Days, int32 Hours, int32 Minutes, int32 Seconds)
Definition Timespan.h:124
CORE_API FString ToString() const
Definition Timespan.cpp:61
bool IsZero() const
Definition Timespan.h:543
bool operator<(const FTimespan &Other) const
Definition Timespan.h:320
FTimespan & operator/=(double Scalar)
Definition Timespan.h:241
CORE_API bool ImportTextItem(const TCHAR *&Buffer, int32 PortFlags, UObject *Parent, FOutputDevice *ErrorText)
Definition Timespan.cpp:25
FTimespan operator/(double Scalar) const
Definition Timespan.h:230
FTimespan()
Definition Timespan.h:80
int32 GetMinutes() const
Definition Timespan.h:433
double GetTotalHours() const
Definition Timespan.h:476
void CORE_API Assign(int32 Days, int32 Hours, int32 Minutes, int32 Seconds, int32 FractionNano)
Definition Timespan.cpp:213
FTimespan(int64 InTicks)
Definition Timespan.h:92
static FTimespan FromSeconds(double Seconds)
Definition Timespan.h:673
double GetTotalMilliseconds() const
Definition Timespan.h:498
static FTimespan Zero()
Definition Timespan.h:747
FTimespan operator-(const FTimespan &Other) const
Definition Timespan.h:184
FTimespan operator+(const FTimespan &Other) const
Definition Timespan.h:150
static FTimespan MaxValue()
Definition Timespan.h:686
static FTimespan FromMilliseconds(double Milliseconds)
Definition Timespan.h:649
FTimespan(int32 Hours, int32 Minutes, int32 Seconds)
Definition Timespan.h:108
CORE_API bool ExportTextItem(FString &ValueStr, FTimespan const &DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope) const
Definition Timespan.cpp:17
FTimespan GetDuration()
Definition Timespan.h:369
static FTimespan Max()
Definition Timespan.h:798
static FTimespan Lowest()
Definition Timespan.h:803
Definition Interval.h:15