🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Duration.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/Constants.h"
25#include <stdint.h> // for int64_t
26
27AST_NAMESPACE_BEGIN
28
38{
39public:
40 double second() const{return second_;}
41 double& second(){return second_;}
42public:
43 double second_; // 秒数
44};
45
46
49{
50public:
52 int64_t integer() const{return integer_;}
53 int64_t& integer(){return integer_;}
54
56 double fractional() const{return fractional_;}
57 double& fractional(){return fractional_;}
58
62 double operator-(const LongDuration& other) const{
63 return minusInSecond(other);
64 }
65
69 double minusInSecond(const LongDuration& other) const{
70 return (integer_ - other.integer_) + (fractional_ - other.fractional_);
71 }
72
76 double minusInMinute(const LongDuration& other) const{
77 return (integer_ - other.integer_) / kSecondsPerMinute + (fractional_ - other.fractional_) / kSecondsPerMinute;
78 }
79
80 double minusInHour(const LongDuration& other) const{
81 return (integer_ - other.integer_) / kSecondsPerHour + (fractional_ - other.fractional_) / kSecondsPerHour;
82 }
83
87 double minusInDay(const LongDuration& other) const{
88 return (integer_ - other.integer_) / kSecondsPerDay + (fractional_ - other.fractional_) / kSecondsPerDay;
89 }
90
95 double totalSecond() const{return (integer_ + fractional_);}
96
99 operator double() const{return totalSecond();}
100
101public:
102 int64_t integer_; // 整数秒部分
103 double fractional_; // 小数秒部分
104};
105
106
109{
110public:
112 int day() const{return day_;}
113 int& day(){return day_;}
114
116 double second() const{return second_;}
117 double& second(){return second_;}
118
123 double totalSecond() const{return day_ * 86400.0 + second_;}
124
129 double totalDay() const{return day_ + second_ / 86400.0;}
130
133 operator double() const{return totalSecond();}
134public:
135 int day_; // 整数天部分
136 double second_; // 小数秒部分
137};
138
139
142AST_NAMESPACE_END
143
long int integer
定义 MockSnopt.c:24
整数天 + 小数秒时长(也能解决长时长问题)
定义 Duration.hpp:109
double totalDay() const
定义 Duration.hpp:129
double second() const
获取小数部分的秒数
定义 Duration.hpp:116
double totalSecond() const
定义 Duration.hpp:123
int day() const
获取整数天部分
定义 Duration.hpp:112
长时长
定义 Duration.hpp:49
double totalSecond() const
定义 Duration.hpp:95
int64_t integer() const
获取整数秒部分
定义 Duration.hpp:52
double minusInSecond(const LongDuration &other) const
时长减法方法(秒)
定义 Duration.hpp:69
double minusInMinute(const LongDuration &other) const
时长减法方法(分钟)
定义 Duration.hpp:76
double fractional() const
获取小数秒部分
定义 Duration.hpp:56
double minusInDay(const LongDuration &other) const
时长减法方法(天)
定义 Duration.hpp:87
double operator-(const LongDuration &other) const
时长减法运算符
定义 Duration.hpp:62
短时长
定义 Duration.hpp:38
constexpr double kSecondsPerMinute
一分钟的秒数
定义 Constants.h:229
constexpr double kSecondsPerHour
一小时的秒数
定义 Constants.h:228
constexpr double kSecondsPerDay
一天的秒数
定义 Constants.h:227
Unit day
定义 Unit.cpp:470