按下按钮时日期减 1

发布于 2024-11-28 07:09:00 字数 337 浏览 1 评论 0原文

我正在使用日期格式化程序字符串来获取当前日期,如下所示:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"EEEE / dd-MM-yyyy";
timeLabel.text = [dateFormatter stringFromDate:[NSDate date]];

现在我需要在按下按钮时将日期减 1,如果今天的日期是星期五/05-08-2011,则按下按钮应显示星期四/04-08-2011。 我怎样才能做到这一点?

I am using a date formatter string in order to get the current date as follows:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"EEEE / dd-MM-yyyy";
timeLabel.text = [dateFormatter stringFromDate:[NSDate date]];

Now i need to decrement the date by 1 on a button press, If the the date today is Friday/05-08-2011, then on button press it should display Thursday/04-08-2011.
How can i achieve this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等往事风中吹 2024-12-05 07:09:00

像这样的代码(除了上面的答案)

- dateByAddingTimeInterval: 在 4.0 及更高版本中可用,您可以使用 - addTimeInterval 对于较低版本(在 4.0 或更高版本中已弃用)。

-(IBAction)decrementDate
{
    NSString *dateForDecrement=timeLabel.text;
    NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    dateFormatter.dateFormat = @"EEEE / dd-MM-yyyy";
    NSDate *dateObjectForDecrement=[dateFormatter dateFromString:dateForDecrement];

    NSDate *dateAfterDecrement=[dateObjectForDecrement addTimeInterval:-(24*60*60)];
     timeLabel.text =  [dateFormatter stringFromDate:dateAfterDecrement];
}

Code like this (in addition to above answer)

- dateByAddingTimeInterval: available in 4.0 and later, you can use - addTimeInterval for lower version (deprecated in 4.0 or later).

-(IBAction)decrementDate
{
    NSString *dateForDecrement=timeLabel.text;
    NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    dateFormatter.dateFormat = @"EEEE / dd-MM-yyyy";
    NSDate *dateObjectForDecrement=[dateFormatter dateFromString:dateForDecrement];

    NSDate *dateAfterDecrement=[dateObjectForDecrement addTimeInterval:-(24*60*60)];
     timeLabel.text =  [dateFormatter stringFromDate:dateAfterDecrement];
}
你的往事 2024-12-05 07:09:00

诀窍是使用时间间隔。 日期和时间编程指南有一些关于这方面的更多信息。

基本上,NSDate 有一个方法允许您向当前日期添加时间间隔。

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

为了获取昨天的日期,您需要获取今天的日期并从中减去 24*60*60(一天的总秒数)。

NSDate *today = [NSDate date];
NSDate *yesterday = [today dateByAddingTimeInterval: -86400.0];

这有帮助吗?

The trick is to use time intervals. The Date and Time Programming Guide has some more information on this.

Basically, NSDate has a method that allows you to add a time interval to the current date.

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

In order to get yesterday's date, you want to grab today's date and subtract 24*60*60 (total # of seconds in one day) from it.

NSDate *today = [NSDate date];
NSDate *yesterday = [today dateByAddingTimeInterval: -86400.0];

Does that help?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文