Skip to content

Conversation

mjradwin
Copy link

Here's an implementation of #28, which replaces the use of Luxon with Temporal.

The transformation was pretty straightforward. Mostly occurrences of DateTime become Temporal.ZonedDateTime, however there are some places where we use Temporal.PlainDate.

The other tricky part is comparisons, which require use of a special static function Temporal.ZonedDateTime.compare() instead of just using < or > or <=.

I've added an additional unit test for the NOAA calculator with an elevation, which lines up to the Java implementation for a handful of functions down to the second.

@mjradwin
Copy link
Author

mjradwin commented Apr 8, 2025

Would you be willing to review this pull request?

@BehindTheMath
Copy link
Owner

BehindTheMath commented Apr 9, 2025

@mjradwin I will try to take a look over Yom Tov. However, I think this should wait to be released until Temporal has higher usage.

@ShlomoCode
Copy link

@KosherJava
Copy link

Not quite there yet. See https://caniuse.com/temporal

@mjradwin
Copy link
Author

@mjradwin I will try to take a look over Yom Tov. However, I think this should wait to be released until Temporal has higher usage.

Thanks for reviewing. If you want to wait for the Temporal spec to be fully ratified (it's currently TC39 Stage 3, and not all the way to Stage 4), I do understand. How would you feel if release my fork on npm as @hebcal/zmanim? I'd like to begin using the software on the hebcal.com website - there is at least one feature request that could be satisfied by having this available

https://hebcal.userecho.com/communities/1/topics/1552-please-add-zmanim-according-to-the-baal-hatanya

@ShlomoCode
Copy link

@mjradwin You can install with npm directly from your fork

npm i https://github.com/mjradwin/KosherZmanim/tree/master

@mjradwin
Copy link
Author

Hi @BehindTheMath, we'd love to get this merged into your tree if you're willing to review the PR.

I understand the reluctance to release. It's just one data point, but we've been using the temporal-polyfill package in production for over a year now and are very comfortable using this as a dependency.

We'd rather not wait for Temporal to be widely adopted as a browser and node.js builtin as this is probably still a year or two away. Are you OK with us releasing a @hebcal/KosherZmanim fork in the interim?

@mjradwin
Copy link
Author

Hi @BehindTheMath, would you be willing to merge this into your tree? I've got at least one request that would benefit from this update

https://hebcal.userecho.com/communities/1/topics/1552-please-add-zmanim-according-to-the-baal-hatanya

google-labs-jules bot and others added 4 commits August 8, 2025 14:16
This commit adds a new test file `tests/ComplexZmanimCalendar.test.ts` with comprehensive unit tests for the `ComplexZmanimCalendar` class.

The tests cover all public methods, ensuring their current behavior is captured and protected against future regressions. The test setup uses a fixed location and date for consistency and comparability with other tests in the suite.
…dar.ts`.

While working on this, I also found and fixed a bug in the `isAssurBemlacha` method. The issue was that `Temporal.ZonedDateTime` objects were being compared incorrectly.

The new tests are located in `tests/ZmanimCalendar.test.ts`. To ensure their accuracy, I generated the expected values from the current version of your library.
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.

4 participants