Commit graph

54 commits

Author SHA1 Message Date
Frank Tang
255eb4ef3e ICU-23069 Fix Hebrew calendar calculation
See #3438
2025-03-19 13:45:52 -07:00
Frank Tang
59af52bb6f ICU-23043 Propogate error in Calendar. 2025-02-11 15:14:27 -08:00
Frank Tang
e515c84645 ICU-22991 Remove unnecessary overload in Calendar 2024-12-23 12:52:11 -08:00
Fredrik Roubert
0178a07a26 ICU-22793 Clang-Tidy: google-readability-casting
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-casting.html
2024-07-04 22:32:12 +02:00
Frank Tang
0c02f8c007 ICU-22743 Change internal functions to propagate errors up. 2024-04-18 15:32:59 -07:00
Frank Tang
fbc1f33e7e ICU-22679 Clean up Calendar code.
1. Remove redudant implementation of default system ceuntry by using
   macro
2. Fold long if / else block if one block return.
2024-03-21 09:50:10 -07:00
Frank Tang
6b67715a94 ICU-22633 Fix hang on large negative day in hebrew calendar
Check error status and return error early in the loop
2024-03-19 16:32:06 -07:00
Frank Tang
9a912bb51b ICU-22633 Add more Calendar overflow tests
Test set+set, set+add, set+roll, add+add, roll+roll
Fix more int32_t overflow problems.

Optimize both Java and C++ Hebrew Calendar month/year advancement by first consider
every 235 months is 19 years before iteration.
2024-03-13 15:48:25 -07:00
Frank Tang
d43d216feb ICU-22633 Test and fix int32_t overflow for Calendar set
Add test to set with INT32_MAX and INT32_MIN then call getTime()
and fix all the undefined errors.
2024-03-12 16:46:53 -07:00
Frank Tang
ec800e7407 ICU-22633 Return error if era is out of range 2024-02-27 10:56:28 -08:00
Frank Tang
b24b251bca ICU-22633 Fix more int overflow issues in calendar 2024-02-13 17:24:18 -08:00
Frank Yung-Fong Tang
0b66fada30 ICU-22633 Fix integer overflow inside Calendar code
See #2806
2024-02-07 10:58:41 -08:00
Frank Tang
19bac42f98 ICU-22446 Fix incorrect Hebrew ORDINAL MONTH bug 2023-07-27 22:18:00 -07:00
Markus Scherer
b6dcc95d3c ICU-21833 remove redundant void parameter lists
See #2351
2023-03-02 09:31:57 -08:00
Fredrik Roubert
2e0d30cfcf ICU-21833 Replace NULL with nullptr in all C++ code. 2023-02-03 20:20:38 +01:00
Frank Tang
cd1b772cbf ICU-22027 Add C++ Calendar API for Temporal
API proposal
https://docs.google.com/document/d/1UYriEzzExiLhi2RD3zjTsI5UQHv1dXaFqrct7yXNdCA/edit#heading=h.x9obor85vpx9

Design Doc
https://docs.google.com/document/d/15ViyC9s0k3VEDwBmAkKxxz4IadZ6QrAIoETkdkF0cVA/

ICU-22027 Adjust API to remove the mention of M00L for now.
2023-01-17 15:08:08 -08:00
Frank Tang
b0ab1171ad ICU-10752 Spread (s|g)etRelativeYear to subclass
Remove the switch statment implementaiton in
Calendar::(g|s)etRelatedYear
and move the code into each subclass as proper OOP style.
2022-11-09 13:18:24 -08:00
Frank Tang
294b26eb7a ICU-22159 Merge inDaylightTime to Calendar
All the subclass implementation of inDaylightTime are the same
so just move to a base class implementation.
2022-10-31 08:42:51 -07:00
Frank Tang
9f3feed545 ICU-22160 clean up Calendar code
Remove unnecessary BuddhistCalendar::handleComputeMonthStart
Remove unnecessary include
2022-10-31 08:41:54 -07:00
Fredrik Roubert
030fa1a479 ICU-21148 Consistently use standard lowercase true/false everywhere.
This is the normal standard way in C, C++ as well as Java and there's no
longer any reason for ICU to be different. The various internal macros
providing custom boolean constants can all be deleted and code as well
as documentation can be updated to use lowercase true/false everywhere.
2022-09-07 20:56:33 +02:00
Andy Heninger
85705f04e0 ICU-21960 C++20 Warnings from ATOMIC_VAR_INIT
Remove the ICU macros ATOMIC_INT32_T_INITIALIZER and U_INITONCE_INITIALIZER,
which made use of C++ ATOMIC_VAR_INIT, which has been removed from C++20.

With modern C++ features being available, these macros no longer served
any real need.
2022-05-17 15:45:06 -07:00
Frank Tang
35dfdf1d02 ICU-21043 Fix calendar problems
This PR fixes
ICU-21043 Erroneous date display in indian calendar of all dates prior to 0001-01-01.
ICU-21044 Hebrew Calendar calculation is incorrect when the year < 1
ICU-21045 Erroneous date display in islamic and islamic-rgsa calendars of all dates prior to 0622-07-18.
ICU-21046 Erroneous date display in islamic-umalqura calendar of all dates prior to  -195366-07-23.

The problem in the indiancal.cpp is
* ICU-21043 the gregorian/julain convesion is wrong. Swith to use
i18n/gregoimp.h fix the problem.

The problem in the hebrwcal.cpp is
* ICU-21044 Use ClockMath::floorDivid to replace x / y for x maybe <  0
also need to fix incorrect value in test file

The problem in the islamcal.cpp:
* ICU-21045: The math of % negative number for year and month is wrong.
* ICU-21046: Not use int64_t methods and caused int32_t overflow while the year is a
huge negative number. Cast to int64_t to force using the int64_t version
for the math fix the problem.

Also add tests to exhaust test 8000 years for all calendar. In quick
mode, only test 2.5 years.

Switch to 0-based month. fix TZ for test.
2020-09-10 00:21:18 -07:00
Frank Tang
863582c2a4 ICU-20465 Calendar/DateFormat listen to tz extension
See #1176
2020-08-04 13:33:03 -07:00
Markus Scherer
f02b496494 ICU-20783 C++ covariant return types: clone(), freeze() & friends 2019-08-22 16:24:41 -07:00
Andy Heninger
242e02c388 ICU-12764 icu4c utf-8 source files, update Copyright notices.
X-SVN-Rev: 39583
2017-01-20 00:20:31 +00:00
Michael Ow
61607c2773 ICU-12564 Update copyright notice in trunk
X-SVN-Rev: 38848
2016-06-15 18:58:17 +00:00
Yoshito Umaoka
00ca13e126 ICU-12564 Reverted r38761 and r38762, because we want to prepend the Unicode copyright for existing source files, instead of replacing copyright comments.
X-SVN-Rev: 38776
2016-05-31 21:45:07 +00:00
Michael Ow
c9f199a30f ICU-12564 Update copyright notice in ICU4C
X-SVN-Rev: 38761
2016-05-26 22:32:17 +00:00
Fredrik Roubert
f34de568c4 ICU-12012 Replace irregular sizeof expressions with UPRV_LENGTHOF().
R=markus.icu@gmail.com

Review URL: https://codereview.appspot.com/286430043 .

X-SVN-Rev: 38378
2016-02-26 11:21:55 +00:00
Yoshito Umaoka
0d678d3115 ICU-10313 Added Hebrew month value checking for leap year.
X-SVN-Rev: 34539
2013-10-10 17:35:28 +00:00
Markus Scherer
8f38199123 ICU-10365 fix namespace issue: icu::UInitOnce
X-SVN-Rev: 34252
2013-09-10 00:34:12 +00:00
Andy Heninger
978f71fe78 ICU-10051 Mutexes: introduce UInitOnce; remove UMTX_CHECK; replace all uses of UMTX_CHECK.
X-SVN-Rev: 33787
2013-05-31 23:50:15 +00:00
Markus Scherer
1beb0f1e4f ICU-8680 require C++ namespace, replace most U_NAMESPACE_QUALIFIER with icu::, remove still-draft U_STD_NS, U_STD_NSQ, and U_STD_NS_USE
X-SVN-Rev: 30281
2011-07-06 04:03:35 +00:00
Andy Heninger
38b7c3e8a7 ICU-6481 fix threading issues in calendar initialization code
X-SVN-Rev: 24445
2008-08-05 22:19:05 +00:00
Steven R. Loomis
4aa07df910 ICU-6240 assorted C bugs
X-SVN-Rev: 23841
2008-04-25 17:29:35 +00:00
Yoshito Umaoka
32c3313145 ICU-5845 Calendar 'actual' limit test ported from J to C. Also ported bug fixes related to calendar limits implementation.
X-SVN-Rev: 23775
2008-04-09 18:26:42 +00:00
George Rhoten
9b82688642 ICU-6125 Eliminate a few kilobytes of unused bits in constant data structures.
X-SVN-Rev: 23182
2008-01-08 09:45:15 +00:00
Andrew J Macheret
f8339df718 ICU-4081 Ported Chinese calendar from icu4j. Mostly working.
X-SVN-Rev: 22853
2007-10-25 20:26:34 +00:00
Yoshito Umaoka
5619137130 ICU-3704 Fix DAY_OF_WEEK_IN_MONTH least maximum value in GregorianCalendar. Also merged field limit bug fixes from ICU4J to ICU4C.
X-SVN-Rev: 22379
2007-08-14 18:31:26 +00:00
Eric Mader
3dbd215bdb ICU-5555 handleGetMonthLength needs to check for out of range months.
X-SVN-Rev: 21092
2007-02-23 19:27:50 +00:00
George Rhoten
b5781126c8 ICU-5349 Use UMTX_CHECK when it's helpful.
X-SVN-Rev: 20269
2006-09-08 04:02:23 +00:00
George Rhoten
4cc82b4180 ICU-5304 Allow source code to work again without using U_NAMESPACE_USE
X-SVN-Rev: 20242
2006-09-04 16:36:21 +00:00
George Rhoten
e8641af8d2 ICU-5032 Move deprecated virtual inline code into the rest of the Hebrew calendar.
X-SVN-Rev: 19397
2006-03-22 00:38:45 +00:00
George Rhoten
5dee33ea3e ICU-4707 Fix some compiler warnings about unused variables.
X-SVN-Rev: 19118
2006-02-09 08:59:20 +00:00
George Rhoten
4b8ef3e6e6 ICU-4288 Mostly fixes for --enable-strict for gcc 3.4 (Fedora Core 3)
X-SVN-Rev: 17040
2004-12-30 07:25:51 +00:00
George Rhoten
7dd960a8b4 ICU-4078 Loosely couple the cleanup functions.
X-SVN-Rev: 16307
2004-09-12 23:07:29 +00:00
George Rhoten
c3e9229f9e ICU-4084 The language isn't needed.
X-SVN-Rev: 16292
2004-09-10 04:57:34 +00:00
George Rhoten
011fe48d05 ICU-3837 Reduce the number of mallocs
X-SVN-Rev: 16035
2004-07-18 02:01:42 +00:00
Eric Mader
abefef5844 ICU-3770 Updated copyright notices for ICU 3.0
X-SVN-Rev: 15411
2004-05-19 20:42:44 +00:00
George Rhoten
2f7feeea3e ICU-3236 Don't export some functions
X-SVN-Rev: 14331
2004-01-15 22:12:26 +00:00