NAME
ipraytime - An Islamic Prayer Times Calculator
SYNOPSIS
ipraytime [--date yyyymmdd] [--latitude real_num] [--longitude
real_num] [--utcdiff real_num] [--method int_num] [--ishaangle
real_num] [--fajrangle real_num] [--dst int_num] [--dst-start yyyymmdd]
[--dst-end yyyymmdd] [--round int_num] [--extreme int_num] [--sea-level
int_num] [--month [int_num]] [--year [int_num]] [--file pref_file]
[--end] [--brief] [--help]
DESCRIPTION
The ipraytime program is a generator of Islamic prayer time schedules
for any given location. ipraytime also calculates the appropriate
Qibla direction (heading towards the Kabaa) based on the given
location. ipraytime in its single day format is also capable of
calculating Imsaak times (ie. the times when one is to start fasting).
ipraytime is also capable of generating a schedule for an entire month
or year based on command-line arguments. The program is also able to
print the schedules for the rest of the current month so as to skip
days that have already passed. ipraytime also has a minimalistic
option to simply show a one liner of the prayer times in its single day
format.
ipraytime has multiple ways of conveying info and settings to it. The
order of precedence (from highest to lowest) is, the command-line
followed by the environment variable setting (IPT_DATA) to the data
being presented in ipraytime’s RC file (~/.iprayrc) in one’s home
directory. If none of the above is found, ipraytime defaults to using
Makkah’s location with the host machine’s current date settings.
OPTIONS
ipraytime follows the usual GNU command line syntax, with long options
starting with two dashes (‘-’). A summary of all options is noted
below:
-h, --help
Show summary of options
-d, --date yyyymmdd
Specify the Gregorian date to use where ‘y’ stands for year, ‘m’
for month and ‘d’ for day
-lat, --latitude real_num
Specify the latitude setting to use during calculations. The
value could be any real number
-lon, --longitude real_num
Specify the longitude setting to use during calculations. The
value could be any real number
-sea, --sea-level real_num
Specify height above Sea level (in meters)
-u, --utcdiff real_num
Specify the difference between the specified timezone and that
of GMT/UTC. The value could be any real number
-a, --anglemethod [int_num]
Specify which angle method calculation to use. The angle
methods that are currently supported by ipraytime are,
1 Egyptian General Authority of Survey
Fajr/Isha Angle : 20/18
Used in : Africa, Indonesia, Iraq,
Jordan, Lebanon, Malaysia,
Singapore, Syria,
Parts of the USA
2 University of Islamic Sciences, Karachi (Shaf’i)
Fajr/Isha Angle : 18/18
Used in : Iran, Kuwait,
Parts of Europe
3 University of Islamic Sciences, Karachi (Hanafi)
Fajr/Isha Angle : 18/18
Used in : Afghanistan, Bangladesh,
India
4 Islamic Society of North America
Fajr/Isha Angle : 15/15
Used in : Canada, Parts of UK,
Parts of USA
5 Muslim World League (MWL)
Fajr/Isha Angle : 18/17
Used in : Parts of Europe,
Far East, Parts of USA
6 Umm Al-Qurra University
Fajr/Isha Angl e : 19/0
Isha Interval : 90 minutes from Al-Maghrib
prayer but set to 120
during Ramadan.
Used in : Saudi Arabia
7 Fixed Isha Angle Interval (always 90)
Fajr/Isha Angle : 19.5/0
Isha Interval : 90 minutes from Al-Maghrib
prayer
Used in : Bahrain, Oman, Qatar, UAE
8 Egyptian General Authority of Survey (Egypt)
Fajr/Isha Angle : 19.5/17.5
Used in : Egypt
-fa, --fajrangle [real_num]
Specify which angle to use for Fajr. Will override the one set
by the --anglemethod.
-ia, --ishaangle [real_num]
Specify which angle to use for Isha. Will override the one set
by the --anglemethod.
-s, --dst [int_num]
By default, ipraytime uses the host’s machine timezone
information to determine whether daylight saving time is in
effect or not. If this information is unavailable or not
accurate, this option provides the means to explicitly set the
DST status. Set this to 0 to completely disable daylight saving
time. Set it to 1 to always add one hour to the computed prayer
times.
-ss, --dst-start yyyymmdd
-se, --dst-end yyyymmdd
Specify a range of dates where day light saving time is in
effect for your location. For example:
ipraytime --dst-start 20040328 --dst-end 20041029
-m, --month [int_num]
Specify to print either current month’s schedule or the
passed-in value’s month schedule.
-y, --year [int_num]
Specify to print either current year’s schedule or the passed-in
value’s year schedule.
-f, --file pref_file
Specify filename to load which contains user’s settings and
preferences.
-e, --end
Specify to continue with schedule printing until the end of
specified month.
-b, --brief
Specify to print a brief one-liner output for single day mode.
-h12, --regular-hour
Display the prayer times in regular time instead of military
time.
-r, --round [int_num]
Specify a method for rounding seconds. The supported methods
are,
0 No Rounding. Completely ignore the computed seconds value.
1 Regular Rounding. If seconds are equal to 30 or above, add
1 minute.
2 Special Rounding. Similar to regular rounding but we always
round down for Shurooq and Imsaak times. (This is the
default method)
3 Aggressive Rounding. Similar to Special Rounding but we add
1 minute if the seconds value are equal to 1 second or
more.
-x, --extreme [int_num]
Specify a method for prayer times calculations at high (49+) or
extreme (66+) latitudes. Prayer times calculations relies
heavily on astronomical events. At these latitudes some of those
events do not occur at all, or are impossible to precisely
calculate using conventional means. For example, at certain
locations the sun never moves below the horizon to the position
of the amount of Fajr angle degrees specified, therefore there
will be no real Fajr time at that location. The supported
extreme methods are:
Note: Methods that have the If Invalid keyword are applied only
when ipraytime is unable to calculate these times. Methods that
have the Always keyword are applied always.
0 None. If unable to calculate, leave as 99:99
1 Nearest Latitude (Aqrab Al-Bilaad): All prayers [Always]
2 Nearest Latitude (Aqrab Al-Bilaad): Fajr and Isha [Always]
3 Nearest Latitude (Aqrab Al-Bilaad): All prayers [If
Invalid]
4 Nearest Good Day (Aqrab Al-Ayyam): All prayers [Always]
5 Nearest Good Day (Aqrab Al-Ayyam): All prayers [If Invalid]
(This is the default method)
Note: All the extreme methods following below do not have a
proof in traditional Shari’a (Fiqh) resources. These methods
were introduced by modern day Muslim scholars and scientists
for practical reasons only.
6 Seventh of Night: Fajr and Isha [Always]
7 Seventh of Night: Fajr and Isha [If Invalid]
8 Seventh of Day: Fajr and Isha [Always]
9 Seventh of Day: Fajr and Isha [If Invalid]
10 Half of the Night: Fajr and Isha [Always]
11 Half of the Night: Fajr and Isha [If Invalid]
Note: To use the next two methods, you will need to specify
FajrInterval and IshaInterval in your configuration file.
12 Minutes from Shorooq/Maghrib: Fajr and Isha [Always]
13 Minutes from Shorooq/Maghrib: Fajr and Isha [If invalid]
CONFIGURATION
ipraytime is capable of loading settings from a configuration file
(~/.iprayrc). The default location of the configuration file can be
changed using the --file option. The content of the file should be in
the following syntax, ‘variable_string: value’. See the EXAMPLES
section for usage examples. Below is a list of all supported settings
which can be used in the configuration file:
Location Settings
City
Specifies an informational city name string to be displayed for
reference
Latitude
Specify the latitude setting to use during calculations. The value
could be any real number
Longitude
Specify the longitude setting to use during calculations. The value
could be any real number
UTC
Specify the difference between the specified timezone and that of
GMT/UTC. The value could be any real number
SeaLevel
Specify height above Sea level (in meters)
Pressure
Specify the atmospheric pressure in millibars. The default value is
1010.
Temperature
Specify the temperature in Celsius degree. The default value is 10.
Calculation Method Settings
AngleMethod
Specify which angle method calculation to use. The value needs to be
a positive integer of one of the supported methods. See the
--anglemethod option for more information.
Mathhab
Specify which mathhab to use in one’s calculations. The current
supported value are 1 for Shaf’i and 2 for Hanafi
OffsetList
Specify a list of values in minutes to add or subtract any amount of
minutes from the daily computed prayer times. For example, If you
want to add 30 seconds to Maghrib and subtract 2 minutes from Isha,
you will set this option to ‘0 0 0 0 0.5 -2’.
FajrAngle
Specify the fajr angle to use during calculations. Will override the
values of the specified method.
IshaAngle
Specify the isha angle to use during calculations. Will override the
values of the specified method.
ImsaakAngle
Specify imsaak and fajr angle difference. The default value is 1.5
degrees.
FajrInterval
Specify the number of minutes between fajr and shorooq. This should
be a positive integer.
IshaInterval
Specify the number of minutes between Isha and Maghrib. This should
be a positive integer.
ImsaakInterval
Specify a difference in minutes between imsaak and fajr. The default
Imsaak interval from fajr is 10 minutes if the FajrInterval is set.
ExtremeMethod
Specify which method to use for high and extreme latitudes. The
value needs to be an integer of one of the supported extreme methods.
See descriptions of the --extreme option for a list of the supported
methods.
NearestLatitude
Specify the latitude Used for the ‘Nearest Latitude’ extreme methods.
The default is at 48.5 degrees.
RoundMethod
Specify which method to use for rounding seconds. The value needs to
be an integer of one of the supported rounding methods. See the
--round option for a list of the supported methods.
Daylight Saving Time Settings
DST
Specify the current DST status. Set this to 0 to completely disable
daylight saving time. Or set it to 1 to always add one hour to the
computed prayer times. See the --dst option for more information.
DST-Start
Specify the start date when daylight saving time adjustment is in
effect for your location. This value should be a valid date in
yyyymmdd form
DST-End
Specify the date when daylight saving time adjustment period ends.
This value should be a valid date in yyyymmdd form
Display Settings
HourFormat
Specify a time format for displaying the prayer times. The value
should be 12 (regular time) or 24 (military time)
ENVIRONMENT
IPT_DATA One means to pass-in the various required settings is via
this variable. The format of the variable needs to be
"LocationName Latitude Longitude UTCdiff AngleMethodNumber".
For instance, setenv IPT_DATA "Dubai 25.25 55.3 4 2"
FILES
~/.iprayrc User configuration file.
EXAMPLES
A sample (~/.iprayrc) showing how options are set:
City: Brussels, Belguim
Latitude: 50.8333
Longitude: 4.3333
UTC: 1
AngleMethod: 2
Mathhab: 1
OffsetList: 0 0 1 2.21 3 -1
Examples of using the command line options:
ipraytime -y 2007
ipraytime -lat 29.5000 -lon 47.7500 -u 3 --anglemethod 2 -d 20071229 -h12
REPORTING BUGS
Report bugs on the web using http://bugs.arabeyes.org
AUTHORS
Written by Nadim Shaikli and Thamer Mahmoud. Part of the Arabeyes.org
project.
COPYRIGHT
ipraytime is subject to the GNU General Public License (GPL).
Copyright © 2005, Arabeyes, Nadim Shaikli.
SEE ALSO
The ITL library (libitl) from the Islamic Tools and Libraries project.
It is the underlying requirement for ipraytime to function. The ITL
library was created and is hosted at www.arabeyes.org.