icu/icu4j
Frank Tang f709987818 ICU-22679 Refactor Islamic Calendar and Optmize starting condition of loop.
Refactor different rules into implementation of private interface Algorithm.
Since IslamicCalendar is public in Java (not in C++), we cannot put them into different subclass of Calendar and have to let them use the same class and object since the caller UNFORTUNALLY can call setCalculationType and setCivil to change the object to different rule. With this refactoring, we group the formula for the same rule into the same Algorithm
implementaiton and now we only do the if/switch check in the constructor or during the call of setCalculationType and setCivil only. The calculation operation is then just delegate the work to the assigned concrete Algorithm.

Improve the efficency while the month is very large. Apply the same optimization in PR 2853 which estimate starting point of year iteration based on an inverse calculation.

ICU-22679 change parameter name

ICU-22679 Use Consumer
2024-03-15 15:01:51 -07:00
..
demos ICU-22534 BRS 75 front-load update version to 75.0.1 2023-12-08 14:32:40 -08:00
main ICU-22679 Refactor Islamic Calendar and Optmize starting condition of loop. 2024-03-15 15:01:51 -07:00
maven-migration ICU-22677 update LICENSE and README.md and pom.xml 2024-02-26 14:34:59 -06:00
perf-tests ICU-22675 Migrate from deprecated boxed primitive constructors to their replacements 2024-02-26 16:39:05 -08:00
releases_tools ICU-22534 BRS 75 front-load update version to 75.0.1 2023-12-08 14:32:40 -08:00
samples ICU-22534 BRS 75 front-load update version to 75.0.1 2023-12-08 14:32:40 -08:00
tools ICU-22675 Migrate from deprecated boxed primitive constructors to their replacements 2024-02-26 16:39:05 -08:00
.gitignore ICU-22325 BRS74 Clean up import statements 2023-10-02 17:22:26 -04:00
APIChangeReport.html ICU-22534 ICU4J 75 frontload API change report 2024-02-29 08:49:43 -08:00
coverage-exclusion.txt ICU-22531 Remove X from XLikelySubtags* 2023-11-17 14:49:39 -08:00
extract-data-files.sh ICU-22326 CLDR release-44-beta5 to ICU main part 3 (ICU sources: lib, tools, tests) 2023-10-26 10:59:18 -07:00
pom.xml ICU-22675 Migrate from deprecated boxed primitive constructors to their replacements 2024-02-26 16:39:05 -08:00
readme.html
stylesheet8.css ICU-22324 Mavenization, resolve some of the release tasks 2023-09-20 10:27:12 -07:00

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="Content-Style-Type" content="text/css2">
  <title>ReadMe for ICU4J</title>
  <meta name="COPYRIGHT" content="© 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html">
  <style type="text/css">
h2.doc { background: #CCCCFF }
h3.doc { text-decoration: underline }
  </style>
</head>
<body style="background-color: rgb(255, 255, 255);" lang="EN-US"
 link="#0000ff" vlink="#800080">

  <p>This readme has moved to the <a href="https://unicode-org.github.io/icu/userguide/icu4j/">ICU4J Readme</a>
    section in the <a href="https://unicode-org.github.io/icu/">ICU User Guide</a>.</p>

  <hr />
  <p> Copyright &copy; 2016 and later: Unicode, Inc. and others. License &amp; terms of use:
  <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a><br/>
  Copyright &copy; 1997-2016 International Business Machines Corporation and  others.
  All Rights Reserved.</p>

</body>
</html>