Изо всех сил, чтобы сохранить дату для последующего использования - PullRequest
0 голосов
/ 29 декабря 2011

Привет, я очень новичок в программировании на iOS и играю с датами (сегодняшняя дата и дата через 1 год).

Вот код, которым я балуюсь.

NSCalendar * calendar = [NSCalendar currentCalendar];//Create a calendar
NSDate *todaysDate = [[NSDate alloc]init]; //get todays date
NSString *dateToday = [NSString stringWithFormat:@"%@",todaysDate];//convert it to a string
NSDateFormatter *df = [[NSDateFormatter alloc] init];// create a formatter
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ" ];//input how the date looks as a string
myDate = [df dateFromString: dateToday];// change it back to a proper NSDate

NSDateComponents *components = [[NSDateComponents alloc] init]; // create the components
[components setYear:1];//add 1 year
nextYear = [calendar dateByAddingComponents:components toDate:todaysDate options:0]; // build the year from component into a variable


dateNextYear = [NSString stringWithFormat:@"%@",nextYear];//convert it to a string
NSDateFormatter *yearFormat = [[NSDateFormatter alloc] init];// create a formatter
[yearFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ" ];//input how the date looks as a string
myDateInTheFuture = [yearFormat dateFromString: dateNextYear];// change it back to a proper NSDate


NSLog(@" next years date is %@ ", myDateInTheFuture);
[yearFormat release];
[components release];
[todaysDate release];

Я могу получить текущую дату и будущую дату через 1 год, но я не уверен, как я буду хранить будущую дату для сравнения, я знаю, что могу использовать элемент сравнения для проверки NSDate, но когда Я устанавливаю будущую дату для переменной каждый раз, когда она запускается, она остается относительно 1 года отдельно от того, что я проверяю, по какой сегодняшней дате. Сейчас 3 часа ночи, где я нахожусь, и мой мозг кашлянет, поэтому заранее извиняюсь, если это самая простая вещь, и я просто не могу ее увидеть.

Это мой первый пост, так что будьте осторожны со мной, пожалуйста. Спасибо

1 Ответ

1 голос
/ 31 декабря 2011

Я не совсем уверен, что вы пытаетесь сделать, но вот что я собираю:

Вы хотите взять текущую дату, добавить к ней год и манипулировать получающейся датой.

Пожалуйста, сообщите мне, если это не правильно.

Для этого попробуйте следующее:

NSDate *todayDate = [NSDate date]; //Create a date that is set to today
NSDate *resultingDate = [calendar dateByAddingTimeInterval:31556926; //Take the current date and add the amount of seconds in a year to it

Если вы хотите сохранить это навсегда, используйте NSUserDefaults:

установить:

[userDefaults setObject:resultingDate forKey:@"storedDate"];

Надеюсь, это поможет,

HBhargava

, чтобы получить:

NSDate *returnedDate = [userDefaults dateForKey:@"storedDate"];
...