mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Bugfix adding date components
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4127 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
28f3b16e21
commit
7a113aa230
2 changed files with 19 additions and 10 deletions
|
@ -1,3 +1,8 @@
|
|||
Fri Apr 23 23:35:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||
|
||||
* Source/NSCalendarDate.m: Applied bugfixes by Jeremy Bettis
|
||||
<jeremy@hksys.com> to better cope with month ends.
|
||||
|
||||
Fri Apr 23 15:00:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||
|
||||
* Source/NSBundle.m: Improved localisation - avoid possibility of
|
||||
|
|
|
@ -1178,6 +1178,7 @@
|
|||
month = 1;
|
||||
year++;
|
||||
}
|
||||
i = [self lastDayOfGregorianMonth: month year: year];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1286,21 +1287,24 @@
|
|||
if (eday < sday)
|
||||
{
|
||||
diff--;
|
||||
if (emonth > 1)
|
||||
extra = [end lastDayOfGregorianMonth: emonth-1 year: eyear];
|
||||
else
|
||||
extra = 31;
|
||||
extra = [end lastDayOfGregorianMonth: smonth year: syear];
|
||||
}
|
||||
if (months)
|
||||
*months = sign*diff;
|
||||
else
|
||||
{
|
||||
while (diff--) {
|
||||
if (emonth - diff >= 1)
|
||||
extra += [end lastDayOfGregorianMonth: emonth-diff year: eyear];
|
||||
else
|
||||
extra += [end lastDayOfGregorianMonth: emonth-diff+12 year: eyear-1];
|
||||
}
|
||||
while (diff--)
|
||||
{
|
||||
int tmpmonth = emonth - diff - 1;
|
||||
int tmpyear = eyear;
|
||||
|
||||
while (tmpmonth < 1)
|
||||
{
|
||||
tmpmonth += 12;
|
||||
tmpyear--;
|
||||
}
|
||||
extra += [end lastDayOfGregorianMonth: tmpmonth year: tmpyear];
|
||||
}
|
||||
}
|
||||
|
||||
/* Calculate day difference and leave any remaining hours in 'extra' */
|
||||
|
|
Loading…
Reference in a new issue