Blender V4.3
math_time.c
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include "BLI_math_base.h"
10#include "BLI_math_time.h"
11
13 double *r_days,
14 double *r_hours,
15 double *r_minutes,
16 double *r_seconds,
17 double *r_milliseconds)
18{
19 BLI_assert(r_days != NULL || r_hours != NULL || r_minutes != NULL || r_seconds != NULL ||
20 r_milliseconds != NULL);
21
22 if (r_days != NULL) {
23 seconds = modf(seconds / SECONDS_IN_DAY, r_days) * SECONDS_IN_DAY;
24 }
25 if (r_hours != NULL) {
26 seconds = modf(seconds / SECONDS_IN_HOUR, r_hours) * SECONDS_IN_HOUR;
27 }
28 if (r_minutes != NULL) {
29 seconds = modf(seconds / SECONDS_IN_MINUTE, r_minutes) * SECONDS_IN_MINUTE;
30 }
31 if (r_seconds != NULL) {
32 seconds = modf(seconds, r_seconds);
33 }
34 if (r_milliseconds != NULL) {
35 *r_milliseconds = seconds / SECONDS_IN_MILLISECONDS;
36 }
37 else if (r_seconds != NULL) {
38 *r_seconds += seconds;
39 }
40 else if (r_minutes != NULL) {
41 *r_minutes += seconds / SECONDS_IN_MINUTE;
42 }
43 else if (r_hours != NULL) {
44 *r_hours += seconds / SECONDS_IN_HOUR;
45 }
46 else if (r_days != NULL) {
47 *r_days = seconds / SECONDS_IN_DAY;
48 }
49}
#define BLI_assert(a)
Definition BLI_assert.h:50
#define SECONDS_IN_MILLISECONDS
#define SECONDS_IN_MINUTE
#define SECONDS_IN_HOUR
#define SECONDS_IN_DAY
#define NULL
void BLI_math_time_seconds_decompose(double seconds, double *r_days, double *r_hours, double *r_minutes, double *r_seconds, double *r_milliseconds)
Definition math_time.c:12