/[PAMELA software]/yodaUtility/sgp4/cJulian.h
ViewVC logotype

Annotation of /yodaUtility/sgp4/cJulian.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Sun Apr 30 11:08:15 2006 UTC (18 years, 7 months ago) by kusanagi
Branch: MAIN
CVS Tags: yodaUtility2_0/00, yodaUtility1_0/00, yodaUtility2_2/00, yodaUtility2_1/00, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
Various utilities for the yoda environment and its related softwares.
YFile 	   	- Inheriths from TFile     - Add custom features to a TFile object.
YException 	- Inheriths from exception - YODA specific Exceptions.
YMcmd	   	- Decoder for the Mcmd packets.
YSQLConnection 	- Singletn class for DB connections.
yodaUtility     - Various functions.
sgp4		- C++ NORAD SGP4/SDP4 Implementation - Developed by Michael F. Henry.

1 kusanagi 1.1 //
2     // cJulian.h
3     //
4     // Copyright (c) 2003 Michael F. Henry
5     //
6     #pragma once
7     #include "globals.h"
8     #include <time.h>
9    
10     //
11     // See note in cJulian.cpp for information on this class and the epoch dates
12     //
13     const double EPOCH_JAN1_00H_1900 = 2415019.5; // Jan 1.0 1900 = Jan 1 1900 00h UTC
14     const double EPOCH_JAN1_12H_1900 = 2415020.0; // Jan 1.5 1900 = Jan 1 1900 12h UTC
15     const double EPOCH_JAN1_12H_2000 = 2451545.0; // Jan 1.5 2000 = Jan 1 2000 12h UTC
16    
17     //////////////////////////////////////////////////////////////////////////////
18     class cJulian
19     {
20     public:
21     cJulian() { Initialize(2000, 1); }
22     explicit cJulian(time_t t); // Create from time_t
23     explicit cJulian(int year, double day); // Create from year, day of year
24     explicit cJulian(int year, // i.e., 2004
25     int mon, // 1..12
26     int day, // 1..31
27     int hour, // 0..23
28     int min, // 0..59
29     double sec = 0.0); // 0..(59.999999...)
30     ~cJulian() {};
31    
32     double toGMST() const; // Greenwich Mean Sidereal Time
33     double toLMST(double lon) const; // Local Mean Sideral Time
34     time_t toTime() const; // To time_t type - avoid using
35    
36     double FromJan1_00h_1900() const { return m_Date - EPOCH_JAN1_00H_1900; }
37     double FromJan1_12h_1900() const { return m_Date - EPOCH_JAN1_12H_1900; }
38     double FromJan1_12h_2000() const { return m_Date - EPOCH_JAN1_12H_2000; }
39    
40     void getComponent(int *pYear, int *pMon = NULL, double *pDOM = NULL) const;
41     double getDate() const { return m_Date; }
42    
43     void addDay (double day) { m_Date += day; }
44     void addHour(double hr ) { m_Date += (hr / HR_PER_DAY ); }
45     void addMin (double min) { m_Date += (min / MIN_PER_DAY); }
46     void addSec (double sec) { m_Date += (sec / SEC_PER_DAY); }
47    
48     double spanDay (const cJulian& b) const { return m_Date - b.m_Date; }
49     double spanHour(const cJulian& b) const { return spanDay(b) * HR_PER_DAY; }
50     double spanMin (const cJulian& b) const { return spanDay(b) * MIN_PER_DAY; }
51     double spanSec (const cJulian& b) const { return spanDay(b) * SEC_PER_DAY; }
52    
53     static bool IsLeapYear(int y)
54     { return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0); }
55    
56     protected:
57     void Initialize(int year, double day);
58    
59     double m_Date; // Julian date
60     };

  ViewVC Help
Powered by ViewVC 1.1.23