Repository navigation
blog: prayer time calculation series, parts 1 to 7 - #45
Merged
Merged
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A seven-part blog series on how prayer times are defined in the sources and computed in code, under a new
prayer-time-calculationtag and ablog/prayer-time-calculation/folder. Each part is a separate commit.What Changes?
blog/tags.yml: newprayer-time-calculationtag.blog/prayer-time-calculation/*.md: the seven posts. Code is shown in tabbed blocks (Python, TypeScript, Go, Rust, Kotlin, Dart, C) with a sharedgroupIdso 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 withcurrentColorand Infima variables so they work in light and dark mode.:::info[Title]form, becausefuture.v4in the site config disables the old:::info Titlespelling. The libmuslim docs underdocs/still use the old form and render as literal text; that is a separate fix.Verification done before opening this PR:
calculate_prayer_timesfor 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.npm run buildandnpm run typecheckpass.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:Type
blog/docs/Checklist
blog/and/ordocs/(plusblog/authors.yml/blog/tags.ymlif adding a post).npm run buildpasses locally (catches broken links — the site usesonBrokenLinks: 'throw').muslimtify methodand the madzhab setting only, both checked against v0.4.4.)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.