Add user offset to help with guesses. #256
Merged
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.
This addresses the
1. Inspect Environment
part of #220 (comment).It loops over each month in the 4 years surrounding the current date and builds an array of
OffsetAt
objects for each time the offset changed. Within a month, it uses a binary search to find the exact minute the offset changed.The number of lookups is fairly consistent across timezones. There are a minimum of 48 lookups (1 per month), and for each month that has a change in offset, only ~16 more lookups are needed to find the exact time of change. This results in ~180 lookups for timezones with DST, and 315 for a more complicated zone like Morocco.
This does not address
2. Broad Search
, or3. Narrow Search + Score
, but those can be addressed inaddZone
andrebuildGuess
respectively.cc @mj1856