batoulapps / adhan-swift

High precision Islamic prayer time library for Swift
MIT License
182 stars 42 forks source link

Add 20 prayer times calculations methods #52

Closed natiq2004 closed 3 years ago

natiq2004 commented 3 years ago

Here is info for 20 ready calculations methods if you add them it would be much better. These info can be tested and verified from this website:

https://www.muslimpro.com/prayer-times

static var methodParams: [CalculationMethod: MethodParams] = [
  .mwl: MethodParams(
    fajrAngle: 18,
    maghrib: .minutes(0),
    isha: .angles(17),
    midnight: .standard),

  .isna: MethodParams(
    fajrAngle: 15,
    maghrib: .minutes(0),
    isha: .angles(15),
    midnight: .standard),

  .egypt: MethodParams(
    fajrAngle: 19.5,
    maghrib: .minutes(0),
    isha: .angles(17.5),
    midnight: .standard),

  // fajrAngle was 19 degrees before 1430 hijri
  .makkah: MethodParams(
    fajrAngle: 18.5,
    maghrib: .minutes(0),
    isha: .minutes(90),
    midnight: .standard),

  .karachi: MethodParams(
    fajrAngle: 18,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .tehran: MethodParams(
    fajrAngle: 17.7,
    maghrib: .angles(4.5),
    isha: .angles(14),
    midnight: .jafari),

  .jafari: MethodParams(
    fajrAngle: 16,
    maghrib: .angles(4),
    isha: .angles(14),
    midnight: .jafari),

  .algeria: MethodParams(
    fajrAngle: 18,
    maghrib: .minutes(0),
    isha: .angles(17),
    midnight: .standard),

  .diyanet: MethodParams(
    fajrAngle: 18,
    maghrib: .minutes(0),
    isha: .angles(17),
    midnight: .standard),

  .egyptBis: MethodParams(
    fajrAngle: 20,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .fixedIsha: MethodParams(
    fajrAngle: 19.5,
    maghrib: .minutes(0),
    isha: .minutes(90),
    midnight: .standard),

  .uoif: MethodParams(
    fajrAngle: 12,
    maghrib: .minutes(0),
    isha: .angles(12),
    midnight: .standard),

  .fr15: MethodParams(
    fajrAngle: 15,
    maghrib: .minutes(0),
    isha: .angles(15),
    midnight: .standard),

  .fr18: MethodParams(
    fajrAngle: 18,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .jakim: MethodParams(
    fajrAngle: 20,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .muis: MethodParams(
    fajrAngle: 20,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .kemenag: MethodParams(
    fajrAngle: 20,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .tunisia: MethodParams(
    fajrAngle: 18,
    maghrib: .minutes(0),
    isha: .angles(18),
    midnight: .standard),

  .awqafuae: MethodParams(
    fajrAngle: 19.5,
    maghrib: .minutes(0),
    isha: .minutes(90),
    midnight: .standard),

Please look at this: https://github.com/ashikahmad/PrayerTimes-Swift/issues/9

sgtsquiggs commented 3 years ago

Hi,

We implement several of these already. Please reference our documentation.

z3bi commented 3 years ago

Any other methods can be achieved by using the .other method and then setting the fajr angle and isha angle manually.