修改 NSDate 以表示从今天起 1 个月

2023-12-21

我正在向我正在开发的 Cocoa 应用程序添加重复事件。我每天和每周都会重复,因为我可以用数学方式定义这些(3600*24*7 = 1 周)。我使用以下代码来修改日期:

[NSDate dateWithTimeIntervalSinceNow:(3600*24*7*(weeks))]

我知道自从事件重复以来已经过去了多少个月,但我不知道如何制作一个代表未来 1 个月/3 个月/6 个月/9 个月的 NSDate 对象。理想情况下,我希望用户说从 10 月 14 日开始每月重复,并且它将在每个月 14 日重复。


(几乎与这个问题 https://stackoverflow.com/questions/181459/is-there-a-better-way-to-find-midnight-tomorrow/181495#181495.)

来自文档 http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSCalendarDate_Class/Reference/Reference.html:

强烈使用 NSCalendarDate 灰心。它还没有被弃用, 但它可能会出现在下一个主要操作系统中 Mac OS X v10.5 之后发布。为了 日历计算,你应该 使用合适的组合 NSCalendar、NSDate 和 NSDateComponents,如中所述 日历在日期和时间 Cocoa 编程主题 http://developer.apple.com/documentation/Cocoa/Conceptual/DatesAndTimes/DatesAndTimes.html.

遵循该建议:

NSDate *today = [NSDate date];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *components = [[NSDateComponents alloc] init];
components.month = 1;
NSDate *nextMonth = [gregorian dateByAddingComponents:components toDate:today options:0];
[components release];

NSDateComponents *nextMonthComponents = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit fromDate:nextMonth];

NSDateComponents *todayDayComponents = [gregorian components:NSDayCalendarUnit fromDate:today];

nextMonthComponents.day = todayDayComponents.day;
NSDate *nextMonthDay = [gregorian dateFromComponents:nextMonthComponents];

[gregorian release];

可能有更直接或更有效的实施,但这应该是准确的并且应该指向正确的方向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改 NSDate 以表示从今天起 1 个月 的相关文章

  • GCD 和线程

    我想了解一些有关 GCD 和线程的知识 我的视图控制器中有一个 for 循环 它要求我的模型执行一些异步网络请求 因此 如果循环运行 5 次 模型将发出 5 个网络请求 考虑到我正在使用 NSURLConnection 的 sendAsyn
  • 从 UTC 转换为本地时区给出错误结果

    背景我需要将格式为 HH mm 的时间字符串从 UTC 转换为本地时区 例如 如果 UTC 时间为 09 00 则当地时间 斯德哥尔摩 欧洲 应提前两个小时 Problem当我将 09 00 UTC 转换为斯德哥尔摩 欧洲时间时 我得到 1
  • UITableViewCell 的 viewDidAppear

    我通常使用viewDidAppear方法在视图完成出现后在视图上执行一些 UI 操作 我在各种情况下使用了此方法 它非常有用 但是 我需要在视图上进行一些 UI 更改UITableViewCell当它完成出现后 SDK中是否有任何可用的方法
  • &(与符号)和 && 或 | 之间的区别(管道)和||在 Objective-C 中?

    我想知道Objective C是否关心我是写 还是 我相信一个与号 会或应该导致如果左侧已经为假 则右侧将不会被评估 这适用于 Objective C 吗 Yes 这些运算符在 C 和 Objective C 中的功能相同 就像在 C 中一
  • 根据一个属性对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个名为 NSMutableArrayallItems其中有以下内容ProductData目的 每个对象都有cid cname ctype and cimage 正如您在下面看到的 json 对象没有按顺序出
  • 如何在我的应用程序中添加应用内购买

    我想在我的应用程序中使用应用程序购买应用程序 但我不知道如何执行此操作 任何人都可以帮助我如何做以及源代码在哪里 给我链接或代码 这里有一堆链接 应用内购买编程指南 http developer apple com iphone libra
  • 如何在 UITableView 中显示零行的表格

    我正在动态地将内容加载到 UITableView 中 如果有数据 表格需要显示数据 如果没有数据 表格应显示普通页面 但在我的应用程序中 表格显示带有两条分隔线的普通页面 我需要删除此分隔线并显示纯白色页面 请建议 任何帮助 将不胜感激 如
  • Swift 相当于 Objective-C FourCharCode 单引号文字(例如 'TEXT')

    我正在尝试在 Swift 中复制一些 Objective C cocoa 一切都很好 直到我遇到以下情况 Set a new type and creator unsigned long type TEXT unsigned long cr
  • 如何以编程方式设置设备(UI)方向?

    希望屏幕 UI 上的所有内容都能够从横向左向右旋转 反之亦然 我该怎么做呢 这是私人的吗 我知道 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation inte
  • NSCalendar 返回明年第一周上周一的错误日期

    我使用下面的代码使用随机日期来计算上周一 哪个工作文件但我的代码在明年日期中断 下面是相同的代码 NSDate date NSDate dateWithTimeIntervalSince1970 1483620311 228 NSLog c
  • 是否可以扩展现有的 Objective-C 块?

    我有一个使用标头中定义的块的类 如下所示 property readwrite copy RequestSucceededBlock succeededBlock 该物业succeededBlock已经设置了一个块 有没有办法用另一个仍然调
  • 如何将图像放入此 UIPickerView 中?

    我不知道如何创建一个在文本一侧带有图像的自定义 UIPickerView 我一直在寻找一种方法 我刚刚发现了这个 UIView pickerView UIPickerView pickerView viewForRow NSInteger
  • PyObjC + Python 3.0 问题

    默认情况下 Cocoa Python 应用程序使用默认的 Python 运行时版本 2 5 如何配置我的 Xcode 项目以便它使用较新的 Python 3 0 运行时 我尝试用新版本替换项目中包含的Python framework 但它不
  • CALayer边框奇怪问题

    我正在向 CALayer 添加边框 但有一些奇怪的行为 在我应用的边框之后出现模糊边框 参见屏幕截图 这是我的代码 void configureLabel self hidden YES self textAlignment NSTextA
  • 如何使用 iPhone 将照片上传到服务器?

    我正在编写一个 iPhone 应用程序 它可以拍摄照片然后将其上传到服务器 如何使用 Cocoa 将照片上传到服务器 我想我在某处使用 NSUrl Thanks Header interface EPUploader NSObject NS
  • UIPickerView selectRow 未按预期工作

    我创建了一个UIPickerView它有两个组件 第一个组件 A 的行数固定为 13 另一个组件 B 的行数可变 具体取决于 A 中选择的行 加载时UIPickerView我调用以下命令 以便我可以在两个组件中默认选择 但是我遇到的问题是只
  • 接收者'ClassName'是一个转发类,对应的@interface可能不存在

    我目前正在寻找一个UIPickerTable在 UIPickerView subviews 内 所以我循环并执行isKindOfClass UIPickerTable class 它有效 但由于 UIPickerTable 的标头未公开 我
  • 处理 UICollectionView 中的点击手势

    由于我无法使用任何框架来创建相册 因此我尝试使用 Collection View 创建自己的相册 但我一开始就陷入困境 我的目标是将网络服务中的所有图像显示到我的集合视图中 因为所有图像都已显示 下一步是当有人点击任何单元格时 我可以在新视
  • 为什么 Objective-C 允许在方法定义末尾使用分号? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 实现文件中方法名后面的分号 https stackoverflow com questions 5678360 semicolon after the method name
  • 如何为 UIImageView 随机化器实现滑动手势

    我一直在浏览大量的教程和问题 但似乎找不到我要找的东西 我有一种感觉 我只是错过了一个简单的步骤 我仍在学习诀窍 所以请承受和我一起做这个 我正在 xcode 4 3 3 上制作图像随机化器 并且我已经能够使用按钮来随机化图像 但我希望它能

随机推荐

  • 应用 Thunderbird 的 git 系列补丁的最简单方法是什么

    我有一封邮件 其中包含 N 个附件 格式为 000X xxxx patch 我想将所有补丁应用到我的 master 之上 但我希望将所有提交分开 因为原始作者提交了它们 当然包括提交消息 方法一 打开邮件 点击另存为 xxx eml 然后
  • 在列表中查找项目的最快方法?

    我有一个未排序的字符串列表 我可以将这些项目放入数组 列表 排序列表等中 我需要找到在此列表中查找字符串的最快方法 我是否最好将列表转储到数组中 对其进行排序 然后实现二分搜索 或者框架是否提供了一种方法来做到这一点 Thanks 附 针对
  • swift 3 - 创建具有关系的条目

    我第一次处理核心数据中的关系 我现在有什么 let appdelegate NSApplication shared delegate as AppDelegate let context appdelegate persistentCon
  • 如何使用 CAP_SYS_ADMIN

    有人可以向我解释一下如何在 c 中使用或设置 CAP SYS ADMIN 吗 我需要卸载 USB 驱动器的功能 但不知道如何使用它 以下是使用命令行执行此操作的方法 sudo setcap cap sys admin ep executab
  • Openlayers 导出到 KML 并保留我的地图样式

    我成功地从 Openlayers 编写了 KML 但是 kml 文件中不存在任何样式 颜色 描边等 是否可以生成带有样式的 KML 我在这里发现了类似的问题 https gis stackexchange com questions 170
  • 在电子表格中添加行(基于列表的提要)但它不起作用

    我已使用以下代码在电子表格 基于列表的提要 中添加行 但它不起作用 NSMutableArray array NSMutableArray alloc init GDataEntrySpreadsheetList listEntry GDa
  • 通过标签继承选择最佳可用功能

    假设用户定义了以下函数的一些子集 void f int void g int void h int 你的任务是写一个函数call best int 它调用上面声明的列表中的第一个函数 然后您可以假设它也已定义 你是怎样做的 首先 我们定义一
  • 使用 VBA 选择动态单元格范围并创建图表

    我正在尝试使用 VBA 创建使用动态范围的图表 具体来说 我有一个Excel table如下 根据这些数据 我想创建一个图表 并根据要求更改日期范围 例如 在一种情况下 我需要制作 7 月 1 日至 7 月 6 日的图表 而在另一种情况下
  • WebDriver:添加新元素

    有没有一种方法可以在当前 DOM 中添加 插入元素 首先我要说的是 这是一个非常糟糕的主意 认真思考为什么要这样做 那么 如果你还想动态添加元素 那就再考虑一下吧 WebDriver 旨在模仿用户与页面的交互 用户通常不会随意添加元素 也就
  • flutter intellij 插件:java 语言支持吗?

    在我的设置中 Intellij Flutter 插件不支持 Java 代码 它将 Java 类视为文本文件 有什么方法可以让 Intellij 支持我使用 Android 特定的 Java 代码吗 类型检查 完成建议 导入 重构 这是我的颤
  • 使用 SELECT 结果集通过 MySQL 存储过程运行 UPDATE 查询

    我试图了解 MySQL 存储过程 我想检查用户登录凭据是否有效 如果有效 则更新用户在线状态 DROP PROCEDURE IF EXISTS checkUser DELIMITER CREATE PROCEDURE checkUser I
  • Haskell 中的稀疏数组?

    Haskell 中是否有任何标准或 最常用 的方法来表示多维稀疏数组 不会过多牺牲性能 例如 C 中的 map gt 我用谷歌搜索了一下 发现只有一些旧的学术论文 还有其他人也在问这个问题 Thanks Data Map Int Int M
  • 什么时候在构造函数和析构函数中调用 this-> 是安全的

    到目前为止我还没有找到一个确定的答案 什么时候打电话比较安全this gt 来自对象内部 特别是在构造函数和析构函数内部 而且 当使用公共继承时 在此调用的结果上使用向上和向下转换是否安全 例如 class foo foo a b this
  • BigQuery 嵌套字段:ARRAY 类型的列单元不能在 SELECT DISTINCT 中使用

    我想在 BigQuery 中选择表的唯一行 但收到 以下错误 ARRAY 类型的列单位不能在 SELECT DISTINCT 中使用 我的查询是 SELECT DISTINCT from table 表架构 mode NULLABLE na
  • C# 模拟 IHttpclient 和 CreateClient

    我有一个想要进行 x 单元测试的函数 但似乎我必须模拟 CreateClient 函数 每当我在测试期间调试它时 var client 似乎等于 null 我确信我正在正确注入依赖项 我想知道的是如何模拟 CreateClient 这是该函
  • 使用 Python 获取列的两个值之间的行

    假设有一个数据框如下 df Period 1996 Jan Feb March 1997 Jan Feb March 1998 Jan Feb March Some Values a b c d e f g h i 以及值之间的行1996
  • 在 XCode 中签名应用程序:在钥匙串中找不到指定的项目

    在 XCode 中存档应用程序 产品 gt 存档 时 出现以下错误 CodeSign Users xxx Library Developer Xcode DerivedData name xxx Build Intermediates Ar
  • Python - 使用正则表达式来过滤数据

    有没有一种简单的方法可以从给定字符串中删除与给定正则表达式匹配的所有字符 我知道在 Ruby 中我可以使用gsub gt gt key cd baz ls l gt cd baz ls l gt gt newkey key gsub w d
  • 错误:模块“app”:找不到平台“android-28”。在项目同步成功之前,设计编辑器不可用

    所以 我是新来的 刚刚安装了 Android Studio 然后想创建一个基本的 Activity 但问题是他们希望我安装 SDK 和 Haxm 而 Haxm 不是通过 SDK 管理器安装的 我已经尝试了很多 并使用了 Stack over
  • 修改 NSDate 以表示从今天起 1 个月

    我正在向我正在开发的 Cocoa 应用程序添加重复事件 我每天和每周都会重复 因为我可以用数学方式定义这些 3600 24 7 1 周 我使用以下代码来修改日期 NSDate dateWithTimeIntervalSinceNow 360