/usr/include/kholidays/lunarphase.h is in kdepimlibs5-dev 4:4.14.10-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | /*
This file is part of the kholidays library.
Copyright (c) 2004,2007,3009 Allen Winter <winter@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KHOLIDAYS_LUNARPHASE_H
#define KHOLIDAYS_LUNARPHASE_H
#include "kholidays_export.h"
class QDate;
class QString;
namespace KHolidays {
/**
Represents and manages a Lunar Phase
A Lunar Phase can be one of the following:
+ "new": the moon is not visible; or traditionally: first visible
crescent of the Moon. For religious purposes, the new
month begins when the first crescent moon can be seen.
Thus, it is impossible to be certain in advance of when
months will begin; in particular, the exact date on which
Ramadan will begin is not known in advance. In Saudi Arabia,
observers are sent up in airplanes if the weather is cloudy
when the new moon is expected.
+ "first quarter": the right 50% of the moon is visible.
+ "full": the moon is fully visible.
+ "last quarter": the left 50% of the moon is visible.
A very good description of the lunar phases can be read at the Wikipedia,
http://en.wikipedia.org/wiki/Lunar_phase
Note that crescent and gibbous phases are not currently supported.
*/
class KHOLIDAYS_EXPORT LunarPhase //krazy:exclude=dpointer
{
public:
/**
Phases of the moon, in traditional English notation. The
phase @c None is used only as an error indicator, for instance
in phase().
*/
enum Phase {
NewMoon, ///< New moon phase
FirstQuarter, ///< First quarter of moon phase
LastQuarter, ///< Last quarter of moon phase
FullMoon, ///< Full moon phase
None ///< Indication for error
};
/**
Return the lunar phase for the specified Gregorian date.
The enum 'None' is returned if one of the supported phases
does not occur on the date.
@param date compute the lunar phase for the specified Gregorian date.
*/
static Phase phaseAtDate( const QDate &date );
/**
Return the lunar phase as a text string for the specified date.
A null string is returned if one of the supported phases does
not occur on the date.
@param date compute the lunar phase for the specified Gregorian date.
*/
static QString phaseNameAtDate( const QDate &date );
/**
Return the string representation of phase.
@param phase the lunar phase.
*/
static QString phaseName( Phase phase );
};
}
#endif
|