Skip to content

Conversation

@mattsu2020
Copy link
Contributor

@mattsu2020 mattsu2020 commented Dec 30, 2025

summary

Implement a function to convert the Ethiopian calendar

related

gnu coreutils test
date-ethiopia.sh

- Refactored date iteration in uumain to extract valid dates early and handle invalid dates with error messages immediately.
- Improved strftime preprocessing in system_time.rs to support additional format specifiers (%N, %q, %:z, %::z, %:::z) using jiff, ensuring consistent behavior across Unix systems.
… improved readability

- Simplified jdn calculation in gregorian_to_ethiopian by removing line breaks
- Condensed jiff_format return statement onto one line
- Moved consume_repeats function signature to a single line
- These changes enhance code compactness without altering functionality
- Introduce format_nanos_padded() and format_nanos_trimmed() helper functions
- Modify preprocess_format() to handle %-N, outputting nanoseconds without trailing zeros
- Retain %N for padded nanoseconds (09 digits) to maintain backward compatibility
- Rename variables in gregorian_to_ethiopian for better readability
- Add nanos_to_u32 function to validate nanosecond values and prevent out-of-range errors
- Replace unsafe pointer casts with safe alternatives using cast_mut and from_ref
- Update format! calls to use named parameters for consistency
- Merge the first two terms of the Julian Day Number formula into a single line to improve code formatting and consistency without altering functionality.
@sylvestre
Copy link
Contributor

sorry but my concerns are still there :)

…anosecond formatting

Extract julian_day_number and ethiopian_year_and_day functions to improve readability and modularity in gregorian_to_ethiopian. Introduce nanos_from and format_nanos_for_flag to simplify nanosecond handling in preprocess_format, reducing code duplication.
…e for conciseness

Refactor the day-of-year calculation in system_time.rs to merge the addition of the two main terms onto one line, improving code readability without altering functionality.
@mattsu2020 mattsu2020 marked this pull request as draft December 30, 2025 10:20
@mattsu2020
Copy link
Contributor Author

sorry but my concerns are still there :)

Should I create a PR just for the conversion code to ethiopia?

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/date/resolution. tests/date/resolution is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/date/date-ethiopia is no longer failing!

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/shuf/shuf-reservoir. tests/shuf/shuf-reservoir is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/sort/sort-stale-thread-mem. tests/sort/sort-stale-thread-mem is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/date/date-ethiopia is no longer failing!

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.

2 participants