Ini ialah pakej Dart untuk mendapatkan waktu solat di Malaysia berdasarkan jadual daripada JAKIM.
Pakej ini membolehkan anda:
Sebelum memulakan penggunaan pakej ini, pastikan anda memenuhi prasyarat berikut:
dependencies:
waktu_solat_malaysia: ^1.2.1
flutter pub get
import 'package:waktu_solat_malaysia/waktu_solat_malaysia.dart';
void main() {
Koordinat koordinatSemasa = Koordinat(3.1390, 101.6869); // Koordinat Kuala Lumpur
ZonWaktuSolat? zon = tentukanZon(koordinatSemasa, namaBandar: 'Kuala Lumpur');
print('Zon waktu solat: $zon');
}
terdapat 2 cara untuk mendapatkan waktu solat.
TempohJadual
selain durasiterdapat 5 tempoh yang boleh didapati melalui TempohJadual:
TempohJadual.harini
TempohJadual.minggu
TempohJadual.bulan
TempohJadual.tahun
TempohJadual.durasi
TempohJadual.harini
ialah nilai lalai (default)
import 'package:waktu_solat_malaysia/waktu_solat_malaysia.dart';
void main() async {
List<WaktuSolat>? senaraiWaktuSolat = await dapatkanJadualWaktuSolat(
ZonWaktuSolat.WLY01,
tempohJadual: TempohJadual.minggu
);
if (senaraiWaktuSolat != null) {
for (var waktuSolat in senaraiWaktuSolat) {
print('Hari ${waktuSolat.hari}: subuh ${waktuSolat.subuh}');
}
} else {
print('Gagal mendapatkan senarai waktu solat.');
}
}
TempohJadual
menggunakan durasiimport 'package:waktu_solat_malaysia/waktu_solat_malaysia.dart';
final harini = DateTime.now();
final waktuSolat = await dapatkanJadualWaktuSolat(
ZonWaktuSolat.WLY01,
tempohJadual: TempohJadual.durasi,
mula: harini,
tamat: DateTime(
harini.year,
harini.month,
harini.day + 1 // tarikh esok
));
Perhatian! 🐥
Pelayan tidak dapat memberikan respon jika tarikh yang diberi melibatkan perbezaan tahun.
Sebagai contoh, jika tarikh request ialah 31 Disember 2023 dan anda menggunakan
TempohJadual.minggu
, 7 hari berikutnya merupakan tahun berbeza maka pelayan akan memberikan ralatRalat pada pelayan: Maaf, tidak dapat memberikan jadual waktu solat jika tahun berbeza
.Hal ini terpakai juga untuk
TempohJadual.durasi
jika tarikh diberikan ialah berbeza tahunnya.
anda boleh menukar format masa mengikut kesesuaian. contohnya:
.keDateTime
// kod bersambung dari atas
final waktuAsar = waktuSolat?[0].asar;
final DateTime = waktuAsar.keDateTime;
.keFormat24Jam
// kod bersambung dari atas
print(waktuAsar.keFormat24Jam) // output: 16:24
// jika ada sifar di hadapan
print(waktuSubuh.keFormat24Jam) // output: 06:10
enum ZonWaktuSolat
senarai penuh berserta nama kawasan kod zon tersebut boleh didapati di laman E-Solat oleh JAKIM
enum TempohJadual
.harini
.minggu
.bulan
.tahun
.durasi
class Koordinat
parameter | jenis data | nullable |
---|---|---|
latitud |
double |
❌ |
longitud |
double |
❌ |
class WaktuSolat
parameter | jenis data | nullable |
---|---|---|
hari |
String |
✅ |
hijrah |
String |
✅ |
masihi |
String |
✅ |
imsak |
String |
✅ |
subuh |
String |
✅ |
syuruk |
String |
✅ |
zohor |
String |
✅ |
asar |
String |
✅ |
magrib |
String |
✅ |
isyak |
String |
✅ |