/[PAMELA software]/YodaProfiler/inc/cJulian.h
ViewVC logotype

Annotation of /YodaProfiler/inc/cJulian.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Tue Oct 17 15:19:57 2006 UTC (18 years, 1 month ago) by mocchiut
Branch: MAIN
File MIME type: text/plain
Added TLE filling, minor bugs fixed

1 mocchiut 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