QBPrayerTime
Kelas utama untuk menghitung jadwal salat harian berdasarkan tanggal dan koordinat geografis.
QBPrayerTime prayer = new QBPrayerTime();
getPrayerTimes​
Menghitung jadwal salat berdasarkan tanggal dan lokasi.
ArrayList<String> getPrayerTimes(Calendar date, double latitude, double longitude, double elevation, double timeZone)
Parameters​
| Name | Type | Description |
|---|---|---|
date | Calendar | Tanggal perhitungan |
latitude | double | Koordinat lintang lokasi |
longitude | double | Koordinat bujur lokasi |
elevation | double | Ketinggian dalam meter |
timeZone | double | Zona waktu (contoh: 7 untuk WIB) |
Returns​
ArrayList<String> dengan urutan indeks:
| Index | Waktu Salat |
|---|---|
[0] | Fajr (Subuh) |
[1] | Sunrise (Syuruq) |
[2] | Dhuhr (Dhuhur) |
[3] | Asr (Asar) |
[4] | Sunset |
[5] | Maghrib |
[6] | Isha (Isya) |
Example​
Calendar cal = Calendar.getInstance();
ArrayList<String> times = prayer.getPrayerTimes(cal, -6.2, 106.8, 0, 7);
String fajr = times.get(0); // "04:35"
String maghrib = times.get(5); // "18:02"
setCalcMethod​
Mengatur metode perhitungan jadwal salat.
void setCalcMethod(int method)
Method Options​
| Method | ID | Description |
|---|---|---|
getKemenag() | 1 | Kementerian Agama RI |
getKarachi() | 2 | University of Islamic Sciences, Karachi |
getISNA() | 3 | Islamic Society of North America |
getMWL() | 4 | Muslim World League |
getMakkah() | 5 | Umm Al-Qura, Makkah |
getEgypt() | 6 | Egyptian General Authority of Survey |
getCustom() | 0 | Pengaturan kustom |
Example​
prayer.setCalcMethod(prayer.getMWL());
Gunakan getKemenag() untuk hasil yang sesuai dengan standar jadwal salat resmi Indonesia.
setAsrJuristic​
Memilih mazhab untuk perhitungan waktu Asar.
void setAsrJuristic(int juristic)
Options​
| Method | ID | Description |
|---|---|---|
getShafii() | 0 | Mazhab Syafi'i (umum di Indonesia) |
getHanafi() | 1 | Mazhab Hanafi |
Example​
prayer.setAsrJuristic(prayer.getShafii());
setTimeFormat​
Mengatur format tampilan waktu.
void setTimeFormat(int time)
Options​
| Method | ID | Contoh Output |
|---|---|---|
getTime24() | 0 | "04:35" |
getTime12() | 1 | "4:35 AM" |
getTime12NS() | 2 | "4:35" (tanpa AM/PM) |
Example​
prayer.setTimeFormat(prayer.getTime24());
detectDaylightSaving​
Mendeteksi dan menerapkan penyesuaian daylight saving time (DST) secara otomatis.
void detectDaylightSaving()
Example​
prayer.detectDaylightSaving();
Berguna untuk negara yang menerapkan DST seperti Amerika Serikat, Eropa, dan Australia.
setAdjustHighLats​
Penyesuaian waktu salat untuk wilayah lintang tinggi (Skandinavia, Kanada, Rusia, dll).
void setAdjustHighLats(int time)
Gunakan method ini ketika getPrayerTimes() mengembalikan nilai NaN untuk Dhuhr, Isha, atau Maghrib.
Options​
| Method | ID | Description |
|---|---|---|
getNone() | 0 | Tidak ada penyesuaian |
getMidNight() | 1 | Dibagi proporsional dari tengah malam |
getOneSeventh() | 2 | Menggunakan 1/7 dari durasi malam |
getAngleBased() | 3 | Menggunakan sudut dibagi 60 (direkomendasikan) |
Example​
prayer.setAdjustHighLats(prayer.getAngleBased());
tune​
Menambahkan offset waktu (dalam menit) pada setiap waktu salat.
void tune(int[] offsets)
Order array: { Fajr, Sunrise, Dhuhr, Asr, Sunset, Maghrib, Isha }
Example​
// Tambah 2 menit ke Fajr, kurangi 1 menit dari Isha
int[] offsets = {2, 0, 0, 0, 0, 0, -1};
prayer.tune(offsets);
Contoh Konfigurasi Lengkap​
QBPrayerTime prayer = new QBPrayerTime();
prayer.setCalcMethod(prayer.getKemenag());
prayer.setAsrJuristic(prayer.getShafii());
prayer.setTimeFormat(prayer.getTime24());
prayer.detectDaylightSaving();
int[] offsets = {0, 0, 0, 0, 0, 0, 0};
prayer.tune(offsets);
Calendar cal = Calendar.getInstance();
ArrayList<String> times = prayer.getPrayerTimes(cal, -6.2, 106.8, 0, 7);