Re: Finding a relative date
Re: Finding a relative date
- Subject: Re: Finding a relative date
- From: Paul Bruneau <email@hidden>
- Date: Tue, 26 Feb 2008 08:45:08 -0500
I am sympathetic to using NSCalendar. At his Boot Camp, Aaron told me
that NSCalendarDate was falling out of favor because it's not a good
player regarding calendars other than Gregorian. I understand this.
However, the documentation really doesn't provide any direction as to
this for a new developer. You might want to file a bug to make the
documentation push us new developers in the good direction.
Nowhere in the NSCalendarDate docs does it say "don't use this" or
even "try not to use this".
In the very first paragraph of the "Dates and Times Programming Topics
for Cocoa" guide, it says:
"A Gregorian date object, a special type of date object, is useful for
representing dates users do see. It adds methods for converting dates
to strings, converting strings to dates, and retrieving elements from
dates (such as hours, minutes, and the day of the week). This is
implemented by NSCalendarDate in Objective-C and by
com.apple.cocoa.foundation.NSGregorianDate in Java."
( file:///Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.CoreReference.docset/Contents/Resources/Documents/documentation/Cocoa/Conceptual/DatesAndTimes/index.html
#//apple_ref/doc/uid/10000039i )
Not exactly a warning against its use.
I did find myself still using NSCalendarDate because I wanted its -
dayOfYear method. I wasn't worried about localization because my
application is used by exactly one user in the middle of a cornfield
in SW Michigan. But if someone knows, what is the way to get this with
NSCalendar? I found I could use NSCalendar to get all the other useful
date pieces (such as -dayOfMonth, -dayOfWeek) I needed except this
one. Hmm, I just thought of: computing the first day of the year and
get the interval between the first day and the target day? I was
blinded to that idea I think by the ease of -dayOfYear!
Maybe in addition to battling for localization with all of us, you
have to battle with the internal folks too, I don't know. I wish you
the best in your battles :)
On Feb 25, 2008, at 6:49 PM, Deborah Goldsmith wrote:
Please don't use NSCalendarDate, as it only supports the Gregorian
calendar. Please use NSCalendar instead, unless you still need to
run on 10.3.x.
Deborah Goldsmith
Apple Inc.
email@hidden
On Feb 25, 2008, at 11:39 AM, Nir Soffer wrote:
On Feb 25, 2008, at 21:27, Randall Meadows wrote:
Given a specific NSDate, I need to be able to find, say, the
Sunday before that date, or the Saturday after that date. I was
hoping to be able to use +dateWithNaturalLanguage with something
like "Sunday before [myDate description]", but that just returns
myDate.
I know I can brute-force it, by figuring out the myDate's day,
then walking backward and/or forward, but is there an easier way?
One more tried and true, less error-prone, that's calendar-savvy
(not that I'm going to need to go as far back as Oct 1582...)?
Check NSCalendarDate -dayOfWeek and -
dateByAddingYears:months:days:hours:minutes:seconds:
Best Regards,
Nir Soffer
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden