Skip to content

blog: prayer time calculation series, parts 1 to 7 - #45

Merged
rizukirr merged 7 commits into
mainfrom
blog/prayer-time-calculation-series
Oct 17, 2026
Merged

rizukirr merged 7 commits into
mainfrom
blog/prayer-time-calculation-series

Conversation

@rizukirr

@rizukirr rizukirr commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Summary

A seven-part blog series on how prayer times are defined in the sources and computed in code, under a new prayer-time-calculation tag and a blog/prayer-time-calculation/ folder. Each part is a separate commit.

  1. What the Quran and Sunnah actually say, and why the same texts give different national timetables
  2. Where is the sun today: declination, the equation of time, the Julian day, and where the Almanac constants come from
  3. Sunrise, Dhuhr and Maghrib: the hour angle, latitude, refraction, refining at the event
  4. Fajr, Isha and the twilight angles: the true and false dawn, where each authority's angle comes from
  5. Asr and the shadow: the Hanafi two shadow reading, the noon shadow, why Asr is a madhhab setting
  6. The national standards: all 21 methods region by region, and what Muslimtify leaves out on purpose
  7. The far north, the clock, and the whole program: high latitude substitutes, daylight saving time, the complete program, a year against libmuslim

What Changes?

  • blog/tags.yml: new prayer-time-calculation tag.
  • blog/prayer-time-calculation/*.md: the seven posts. Code is shown in tabbed blocks (Python, TypeScript, Go, Rust, Kotlin, Dart, C) with a shared groupId so the reader's language choice follows them through the series. Figures are inline SVG generated by scripts from the same formulas the posts teach, themed with currentColor and Infima variables so they work in light and dark mode.
  • Admonitions use the :::info[Title] form, because future.v4 in the site config disables the old :::info Title spelling. The libmuslim docs under docs/ still use the old form and render as literal text; that is a separate fix.

Verification done before opening this PR:

  • Every Python, TypeScript, Rust and C snippet was run. For Jakarta on 2026-10-17 the results match libmuslim's calculate_prayer_times for all 21 methods, cell for cell. Part 7 compares a full year (Jakarta, London, Oslo, Tromsø) against libmuslim and reports the differences in the post.
  • The Go, Kotlin and Dart snippets were written to match but were not run, because those toolchains are not installed here. Each post flags this in a hidden MDX comment.
  • npm run build and npm run typecheck pass.

Opened as a draft because the following still need a human reviewer before publishing. Every item is marked with a hidden {/* VERIFY */} comment at the exact spot in the text:

  • Hadith numbering and wording (sunnah.com numbering was used from memory) in parts 1, 5 and 7, and the Umar letter in the Muwatta that part 1 describes but does not quote.
  • The short histories of each authority's angles in parts 4 and 6 (Djambek and the 2020 Kemenag statement, Umm al-Qura's 2008 change, ISNA, UOIF, Egypt, Diyanet's temkin). The sources consulted are listed in part 6's hidden review note.
  • Egypt's daylight saving dates in part 7.
  • Two findings about libmuslim surfaced in part 7's year-long comparison: Asr is evaluated from the 0h UT declination without refinement (up to about 1.5 minutes at London), and on one boundary day per city Isha is substituted where the sun does reach the angle. Both are stated in the post and may deserve issues on libmuslim.

Type

  • Blog post (new or edited) — blog/
  • Documentation — docs/

Checklist

  • This PR only touches blog/ and/or docs/ (plus blog/authors.yml / blog/tags.yml if adding a post).
  • npm run build passes locally (catches broken links — the site uses onBrokenLinks: 'throw').
  • Every command I documented has been tested against the real Muslimtify CLI. (The posts reference muslimtify method and the madzhab setting only, both checked against v0.4.4.)
  • Images are embedded via GitHub asset URLs (not committed into static/). (No raster images; the figures are inline SVG in the Markdown.)

AI disclosure

Written with Claude Code (Claude Opus 5.5 and Fable 5.1) by the maintainer, with heavy AI assistance: the prose, the code in all seven languages, the figure generator scripts and the verification scripts were drafted by the model under direction, then run and checked as described above. The SVG figures are not AI-generated images; they are drawn by small Python scripts from the formulas in the posts, and the scripts are reproducible. The religious and historical content has not yet been reviewed by a qualified person, which is why this is a draft.

Open a series on how prayer times are defined and computed. Part 1 covers
the Quran, the Sunnah, the Companions and the early jurists, and why the
same texts give different national timetables. Adds the
prayer-time-calculation tag and the series folder under blog/.
Declination and the equation of time from the date, the Julian day, the
Astronomical Almanac low precision formula and where its constants come
from, solar noon for Jakarta, with code in seven languages and figures
generated from the same formulas.
The hour angle, what latitude does to the sun's path, why sunrise uses
0.833 degrees, and refining the event at its own instant. Output matches
libmuslim's solver for Jakarta.
Twilight bands, the true and false dawn, where each authority's angle
comes from, and how much the angle matters by latitude. Seven methods
compared for Jakarta, matching libmuslim.
The shadow rule from the texts, the Hanafi two shadow reading, the noon
shadow, and the Asr altitude formula. Explains why Asr is a madhhab
setting and not part of the calculation method.
All 21 methods Muslimtify ships, region by region, with what each adds
on top of the angles: intervals, Maghrib offsets, precaution and rounding,
and what Muslimtify leaves out on purpose. The full table for Jakarta
matches libmuslim cell for cell.
…ogram

High latitude substitutes and the polar circle, daylight saving time with
Cairo as the example, the complete program in one file, and a year long
comparison against libmuslim for four cities.
@vercel

vercel Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
muslimtify Ready Ready Preview Oct 17, 2026 2:00pm UTC

@rizukirr
rizukirr marked this pull request as ready for review October 17, 2026 14:07
@rizukirr
rizukirr merged commit f358de0 into main Oct 17, 2026
4 checks passed
@rizukirr
rizukirr deleted the blog/prayer-time-calculation-series branch October 17, 2026 14:27

This branch was successfully deployed

1 active deployment
Preview — 61bfef40 Deployed Oct 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant