Prayer Times Calculator
This Python script calculates Islamic prayer times based on a user's location, the date, and a selected calculation method. Originally developed by Hamid Zarrabi-Zadeh, it was later adapted to Python by Saleem Shafi, Hamid Zarrabi-Zadeh and Mohammad Rahimi.
Features
- Calculates the times for Islamic prayers, including Fajr, Dhuhr, Asr, Maghrib, and Isha, for any geographic location.
- Supports multiple established calculation methods, such as MWL, ISNA, Umm Al-Qura, and Jafari.
- Includes settings tailored for high-latitude locations where the sun's behavior may vary significantly.
- Allows users to customize prayer time offsets.
- Offers output formats in both 12-hour and 24-hour clock styles.
Requirements
To run this script, you will need:
- Python version 3.x or later.
- The built-in
mathandremodules, which come pre-installed with Python.
How to Use
1. Initialize the PrayTimes Class
To begin, create an instance of the PrayTimes class, specifying your desired calculation method. For example:
from praytimes import PrayTimes
PT = PrayTimes('MWL')
2. Calculate Prayer Times
To compute prayer times for a specific date and location, use the get_times method. This method requires the date, geographic coordinates (latitude, longitude, and optionally elevation), the time zone offset, daylight saving adjustment (if applicable), and the desired time format.
from datetime import date
# Initialize PrayTimes
PT = PrayTimes('Tehran')
# Specify Coordinates (latitude, longitude)
coordinates = (34.641159, 50.877456)
timezone = 3.5 # Time zone offset from UTC
times = PT.get_times(date.today(), coordinates, timezone)
print(times)
Example Output:
{
'imsak': '05:10',
'fajr': '05:20',
'sunrise': '06:50',
'dhuhr': '12:15',
'asr': '15:20',
'sunset': '18:45',
'maghrib': '18:55',
'isha': '20:15',
'midnight': '00:35'
}
Key Methods and Functions
get_times(date, coordinates, timezone, dst=0, format=None)
This method calculates prayer times for a given date and location.
date: Accepts either a tuple(year, month, day)or adatetime.dateobject.coordinates: A tuple specifying(latitude, longitude, [elevation]).timezone: The time zone offset from UTC.dst: Optional daylight saving time adjustment (default is0).format: Optionally specify time output format (12hor24h).
set_method(method)
This method sets the prayer time calculation method.
- Supported methods include
MWL,ISNA,Egypt,Makkah,Karachi,Tehran, andJafari.
adjust(parameters)
Use this method to modify calculation parameters, such as those for Imsak or Maghrib.
tune(offsets)
This function allows you to fine-tune computed prayer times by applying custom offsets in minutes.
get_method() and get_settings()
These methods retrieve the currently selected calculation method and its associated parameters.
Calculation Methods
Each supported method uses specific angle values to determine Fajr and Isha timings. For instance:
- MWL (Muslim World League): Fajr at 18°, Isha at 17°
- ISNA (Islamic Society of North America): Fajr at 15°, Isha at 15°
- Tehran (Institute of Geophysics, University of Tehran): Fajr at 17.7°, Maghrib 4.5° after sunset, Isha at 14°
Example Output
When run directly, the script outputs prayer times for today using a sample location:
Prayer Times for today in Waterloo/Canada
=========================================
imsak: 05:10
fajr: 05:20
sunrise: 06:50
dhuhr: 12:15
asr: 15:20
sunset: 18:45
maghrib: 18:55
isha: 20:15
midnight: 00:35
License
This script is distributed under the GNU LGPL v3.0 license. Proper credit should be given to the original authors, with a link to PrayTimes.org.
Acknowledgments
- Original JavaScript Code: Hamid Zarrabi-Zadeh
- Python Adaptation: Saleem Shafi and Hamid Zarrabi-Zadeh, Mohammad Rahimi
For more details about the calculations, see the user manual and calculation formulas.
Project link on Pypi.org
Project on GitHub: religious_times
Metadata
Release files for religious-times 2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| religious_times-2.6.tar.gz | 3.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| religious_times-2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.4 kB
Release files / religious_times-2.6.tar.gz
| Download URL | religious_times-2.6.tar.gz |
|---|---|
| Size | 3.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
628510254cf4090dbfa6b65aca799625fa64815aba1530894402bd7d83bbac4e
|
|
BLAKE2b-256 checksum How to use checksums |
181f11ace49406511247e42be4467b2c121516ce5892a681a462655aa7bff6c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.12
|
Release files / religious_times-2.6-py3-none-any.whl
| Download URL | religious_times-2.6-py3-none-any.whl |
|---|---|
| Size | 3.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
60311a641ebcb089e678940c9a3479b8cdbee83da8df4d8eca87f02243a57fd2
|
|
BLAKE2b-256 checksum How to use checksums |
95567dc069b821b809462c42bee63716841fc041d213c5416b29f55083894e96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.12
|