22 #define _USE_MATH_DEFINES
27 #include "src/functions/alog.h"
28 #include "src/functions/atime.h"
46 QTime blocktime_out(0, 0);
49 int blockseconds = tofb.secsTo(tonb);
50 blocktime_out = blocktime_out.addSecs(blockseconds);
53 int blockseconds = tofb.secsTo(midnight);
54 blocktime_out = blocktime_out.addSecs(blockseconds);
55 blockseconds = midnight.secsTo(tonb);
56 blocktime_out = blocktime_out.addSecs(blockseconds);
68 int minutes = block_minutes.toInt();
69 QString hour = QString::number(minutes / 60);
70 if (hour.size() < 2) {
73 QString minute = QString::number(minutes % 60);
74 if (minute.size() < 2) {
77 QString block_time = hour +
":" + minute;
84 QString hour = QString::number(block_minutes / 60);
85 if (hour.size() < 2) {
88 QString minute = QString::number(block_minutes % 60);
89 if (minute.size() < 2) {
104 QString timestring = time.toString(
"hh:mm");
105 int minutes = (timestring.left(2).toInt()) * 60;
106 minutes += timestring.right(2).toInt();
118 int minutes = (timestring.left(2).toInt()) * 60;
119 minutes += timestring.right(2).toInt();
120 timestring = QString::number(minutes);
131 double deg = rad * (180 / M_PI);
142 double rad = deg * (M_PI / 180);
153 double nm = rad * 3440.06479482;
207 double solarElevation(QDateTime utc_time_point,
double lat,
double lon);
219 int calculateNightTime(
const QString &dept,
const QString &dest, QDateTime departureTime,
int tblk,
int nightAngle);
221 bool isNight(
const QString &icao, QDateTime event_time,
int night_angle);
234 NightTimeValues(
const QString& dept,
const QString& dest,
const QDateTime& departure_time,
int block_minutes,
int night_angle)
236 nightMinutes =
calculateNightTime(dept, dest, departure_time, block_minutes, night_angle);
238 nightTime = ATime::qTimefromMinutes(nightMinutes);
239 totalTime = ATime::qTimefromMinutes(block_minutes);
241 if (nightMinutes == 0) {
242 takeOffNight =
false;
243 landingNight =
false;
245 else if (nightMinutes == block_minutes) {
249 if(isNight(dept, departure_time, night_angle))
252 takeOffNight =
false;
253 if(isNight(dest, departure_time.addSecs(block_minutes * 60), night_angle))
256 landingNight =
false;
260 NightTimeValues(
bool to_night,
bool ldg_night,
int night_minutes, QTime night_time, QTime total_time)
261 : takeOffNight(to_night), landingNight(ldg_night), nightMinutes(night_minutes), nightTime(night_time), totalTime(total_time){};
268 inline bool isAllDay() {
return (!takeOffNight && !landingNight);}
269 inline bool isAllNight() {
return ( takeOffNight && landingNight);}
270 inline bool isDayToNight() {
return (!takeOffNight && landingNight);}
271 inline bool isNightToDay() {
return ( takeOffNight && !landingNight);}
The ACalc namespace provides various functions for calculations that are performed outside of the dat...
Definition: acalc.h:35
double radToDeg(double rad)
radToDeg Converts radians to degrees
Definition: acalc.h:129
double greatCircleDistanceBetweenAirports(const QString &dept, const QString &dest)
ACalc::greatCircleDistanceBetweenAirports Calculates Great Circle distance between two coordinates,...
Definition: acalc.cpp:107
double radToNauticalMiles(double rad)
radToNauticalMiles Convert Radians to nautical miles
Definition: acalc.h:151
void updateAutoTimes(int acft_id)
ACalc::updateAutoTimes When the details of an aircraft are changed, this function recalculates deduct...
Definition: acalc.cpp:305
QVector< QVector< double > > intermediatePointsOnGreatCircle(double lat1, double lon1, double lat2, double lon2, int tblk)
Calculates a list of points (lat,lon) along the Great Circle between two points. The points are space...
Definition: acalc.cpp:137
QT_DEPRECATED int stringToMinutes(QString timestring)
ACalc::string_to_minutes Converts String Time to String Number of Minutes.
Definition: acalc.h:116
int calculateNightTime(const QString &dept, const QString &dest, QDateTime departureTime, int tblk, int nightAngle)
Calculates which portion of a flight was conducted in night conditions.
Definition: acalc.cpp:230
double greatCircleDistance(double lat1, double lon1, double lat2, double lon2)
greatCircleDistance Calculates Great Circle distance between two coordinates, return in Radians.
Definition: acalc.cpp:88
QT_DEPRECATED QTime blocktime(QTime tofb, QTime tonb)
ACalc::blocktime Calculates Block Time for a given departure and arrival time.
Definition: acalc.h:44
QT_DEPRECATED int QTimeToMinutes(QTime time)
ACalc::time_to_minutes converts QTime to int minutes.
Definition: acalc.h:102
QT_DEPRECATED QString minutesToString(QString block_minutes)
ACalc::minutes_to_string Converts database time to String Time.
Definition: acalc.h:66
double degToRad(double deg)
degToRad Converts degrees to radians
Definition: acalc.h:140
double solarElevation(QDateTime utc_time_point, double lat, double lon)
Calculates solar elevation angle for a given point in time and latitude/longitude coordinates.
Definition: acalc.cpp:171
QString formatTimeInput(QString user_input)
ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...
Definition: acalc.cpp:35
void updateNightTimes()
ACalc::updateNightTimes updates the night times in the database, used when changing night angle setti...
Definition: acalc.cpp:348
The NightTimeValues struct encapsulates values relating to night time that are needed by the NewFligh...
Definition: acalc.h:232