YMCalendarUtils.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. //
  2. // YMCalendarUtils.h
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/3/3.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. @interface YMCalendarUtils : NSObject
  11. + (instancetype)shareCalender;
  12. /**
  13. 获取 date 对应的 农历
  14. @param date 需要转换的 date
  15. @return 返回的农历
  16. */
  17. - (NSString *)calendarIdentifierChineseWithDate:(NSDate *)date;
  18. /**
  19. 计算总共有多少个月
  20. @param dateStr 字符串时间
  21. @return 返回的 年(无符号整型)
  22. */
  23. //- (NSUInteger)getCurrentYearWith:(NSString *)dateStr;
  24. /**
  25. 获取当前月份的天数
  26. @return 返回天数
  27. */
  28. - (NSInteger)getCurrentMonthForDays;
  29. /**
  30. 获取指定月份的天数
  31. @param date 指定的时间
  32. @return 返回天数
  33. */
  34. - (NSInteger)getNextNMonthForDays:(NSDate *)date;
  35. - (NSInteger)getSumOfDaysForYear:(NSString *)year month:(NSString *)month;
  36. /**
  37. 获取某个月 1 号 的NSDate对象
  38. @param date 指定的某月
  39. @return 指定的NSDate
  40. */
  41. - (NSDate *)getAMonthframDate:(NSDate*)date;
  42. /**
  43. 计算某个月的 几 号 是星期几
  44. @param date 指定的日期
  45. @return 返回的星期
  46. */
  47. - (NSString *)getFirstDayWeekForMonth:(NSDate *)date;
  48. /**
  49. 计算某个月的 几 号 是星期几
  50. @param date 指定的日期
  51. @return 返回的星期
  52. */
  53. - (NSUInteger )getFirstDayWeekIntergerForMonth:(NSDate *)date;
  54. /**
  55. 获取当前系统的时间
  56. @return 返回当前系统的字符串时间
  57. */
  58. - (NSString *)getCurrentTimeWithHourMinSecond:(BOOL)flag;
  59. - (int)getYear;
  60. - (int)getMonth;
  61. - (int)getDay;
  62. - (int)getHour;
  63. - (int)getMinute;
  64. - (int)getSecond;
  65. - (NSInteger)getYearWithDate:(NSDate *)date;
  66. - (NSInteger)getMonthWithDate:(NSDate *)date;
  67. - (NSInteger)getDayWithDate:(NSDate *)date;
  68. - (NSInteger)getHourWithDate:(NSDate *)date;
  69. - (NSInteger)getMinuteWithDate:(NSDate *)date;
  70. - (NSInteger)getSecondWithDate:(NSDate *)date;
  71. /**
  72. 获取 指定时间 到 1970 的时间戳
  73. @param dateStr 指定字符串时间
  74. @param formatterStr 时间格式
  75. @return 返回的时间戳
  76. */
  77. - (NSTimeInterval )timeIntervalWithDateStr:(NSString *)dateStr dateStrFormatterStr:(NSString *)formatterStr;
  78. /**
  79. 获取 当前时间的时间戳
  80. @return 返回的时间戳
  81. */
  82. - (NSTimeInterval )currentTimeInterval;
  83. /**
  84. 字符串时间 --> NSDate
  85. @param dateStr 字符串时间
  86. @param formatterStr 时间格式
  87. @return 返回的NSDate
  88. */
  89. - (NSDate *)dateWithDateStr:(NSString *)dateStr dateStrFormatterStr:(NSString *)formatterStr;
  90. /**
  91. NSDate --> 字符串时间
  92. @param date 需要抓换的 NSDate
  93. @param formatterStr 时间格式
  94. @return 返回的字符串时间
  95. */
  96. - (NSString *)dateStrWithDate:(NSDate *)date dateStrFormatterStr:(NSString *)formatterStr;
  97. /**
  98. 获取某个时间与当前时间之间的时间差(分钟)
  99. @param interval 需要比较的时间
  100. @return 返回的差(分钟)
  101. */
  102. - (NSInteger )getDifferenceMinWithTimeInterval:(NSTimeInterval)interval;
  103. /**
  104. 获取 当前时间到已过时间的时间差
  105. @param interval 已过时间的时间戳(从1970开始算)
  106. @return 返回的时间差
  107. */
  108. - (NSString *)getStandardTimeInterval:(NSTimeInterval)interval;
  109. /**
  110. 计算两个时间之间相差多少天
  111. 注意:两个时间 date 的格式必须一样,不然会有误差
  112. @param fromDate 第一个时间
  113. @param toDate 第二个时间
  114. @return 返回的天数
  115. */
  116. - (NSInteger)numberOfDaysWithFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate;
  117. /**
  118. 计算前一天或者后一天
  119. @param later 是否是后一天
  120. @param currentDateStr 要计算的日期
  121. @return 返回的日期
  122. */
  123. - (NSString *)calculateMonthDay:(BOOL)later withCurrentDateStr:(NSString *)currentDateStr;
  124. /**
  125. 计算前一天或者后一天
  126. @param later 是否是后一天
  127. @param currentDateStr 要计算的日期
  128. @return 返回的日期字典
  129. */
  130. - (NSDictionary *)calculateDate:(BOOL)later withCurrentDateStr:(NSString *)currentDateStr;
  131. /** 判断时间是否是今天 */
  132. - (BOOL)isTodayWithDate:(NSDate *)date;
  133. @end
  134. NS_ASSUME_NONNULL_END