做一个自己的日历
思路:整体用collectionView
难点:组织日期数据,分组背景效果,组头悬停效果
1两层for循环,创建一个二维数组,第一层为月份,第二层为每个月下的天数。
2计算起始日期之间一共有几个月,用于第一层数组。
3计算各个月份一共有几天。并计算每月第一天是星期几,用来添加对应数量的空数据模型。对应天的model对象添加到每月的数组,构成第二层数组。
逻辑:选择开始日期和结束日期区间,开始日期标记为开始变红,结束日期标记为结束变红,两个日期之间的日期变紫。特殊情况:已经选择开始日期,选择结束日期比开始日期早,取消原来的开始日期,将这次点击变为选择开始日期,每次点击选择日期,item的model状态改变重新刷新collectionView
1需要自定义装饰视图,继承UICollectionReusableView实现自定义视图
2在自定义FlowLayout中注册自定义的装饰视图
3因为每个collectionView的section背景装饰视图的月份是不同的,所以需要动态改变。不能直接传值,只能通过layoutAttributesForElementsInRect方法,添加装饰视图
iOS 90之后直接设置 flowLayoutsectionHeadersPinToVisibleBounds = true; 就可以。但是90之前需要自己手动在自定义FlowLayout中计算,组头悬停。可以参考下这老哥的 >
在苹果手机上打开“设置”应用程序,点击“移动数据”(iOS 14及以上版本)或“通用”->“迁移至新设备”(iOS 13及以下版本)。
在“迁移至新设备”页面中,选择“安卓”,然后点击“继续”。
在安卓设备上,下载并安装“移动设备管理器(Move to iOS)”应用程序。
打开“移动设备管理器(Move to iOS)”应用程序,在“准备好了吗?”页面中点击“同意”来接受条款和条件。
在“找到您的代码”页面中,输入您在苹果设备上看到的六位或十位数的代码。
在“选择内容”页面中,选择您想要迁移的数据,例如联系人、消息、照片等。
等待数据传输完成。传输完成后,您可以在苹果设备上查看和使用这些数据。
请注意,如果您使用的是iCloud备份,您可以在设置中选择“iCloud”->“备份”来备份您的数据。在设置新的苹果设备时,您可以选择“还原备份”来将备份的数据传输到新的设备上。
echo %date%
for /f "tokens=2" %a in ('echo %date%') do @echo %a
用这个命令可以直接显示为星期几
for /f "tokens=2" %a in ('echo %date%') do @echo %a >"%USERPROFILE%\桌面\星期txt"
直接生成到桌面上星期文本
2023年iPhone日历订阅:中国节假日调休+常用节日+国际节日!

他们都叫我柯基
这篇文章我会长期更新,2023年、2024年、2025年···,保证订阅能长期有效,因为我自己也在用。
平时我看日期用的都是 iPhone 自带的日历,我都不想吐槽了,真心难用!虽然简洁无广告吧,但很多节日根本没有,比如母亲节、父亲节、情人节等,而且更新也不及时,很不方便。
最近苹果升级了自带日历的订阅,将中国节假日调休加了进去,但是节日信息依旧不全,而且体验也没很完美,所以我在原生订阅基础上做了优化。
我做了两个日历订阅,分别对应 iOS 15、iOS 16,这两个订阅能完美弥补对应系统下日历的缺陷。
一、柯基日历增强包(iOS 16)
➔ 点击这里获取订阅链接,我会每年保持更新。
该日历仅针对 iOS 16,柯基日历增强包中包含了:中国传统节日、国际节日。
★ 新增中国传统节日/国际节日共15个:母亲节、父亲节、情人节、腊八节、北方小年、南方小年、植树节、愚人节、中元节、教师节、万圣夜、万圣节、感恩节、平安夜、圣诞节。
使用建议:
因为在 iOS 16 系统下,使用苹果自带的日历订阅会有休/班的角标,所以大家一定要把默认的"中国节假日"勾选起来。
但是这个默认订阅有个缺陷,就是没有母亲节、父亲节、情人节等这些重要节日。
所以,我专门给 iOS 16 的小伙伴们做了个柯基日历增强包,这个增强包可以完美弥补默认日历的缺陷。订阅后把下图中两个日历都勾选上即可。
苹果自带的中国节假日订阅,一般会在每年年底更新,等更新之后,法定节假日及调休就会有休/班的角标,配合我的日历增强包,体验更完美。
二、柯基日历订阅(iOS 15)
➔ 点击这里获取订阅链接,我会每年保持更新。
柯基日历订阅中包含:中国节假日安排、二十四节气、中国传统节日、国际节日。
★优化中国节假日安排:增加了第几天,示例,元旦(休)第1天/共3天
★新增中国传统节日/国际节日共15个:母亲节、父亲节、情人节、腊八节、北方小年、南方小年、植树节、愚人节、中元节、教师节、万圣夜、万圣节、感恩节、平安夜、圣诞节。
使用建议:
虽然目前苹果自带的日历订阅已经加上了节假日安排,但是 iOS 15 系统下的日历没有休/班的角标,所以很难判断当前是休/班的第几天,而且节日也不全。
所以我的建议是 iOS 15 及以下系统,直接订阅柯基日历,然后仅勾选"柯基日历订阅",取消勾选默认的"中国节假日"。
1、创建一个时间对象
2、获取当前时区
3、获取当前时区和GMT的时间间隔
4、获取当前系统时间
概念:时间戳是从 1970年1月1号 00:00:00(北京时间1970年01月01日08时00分00秒)开始到当前时间走过的毫秒数
获取当前系统时间的时间戳
获取比当前时间,晚5秒的时间
倒计时功能 :通常是服务器会给我们返回一个时间戳,我们用这个时间戳和当前系统的时间戳对比,将对比的差值(毫秒)转换为几天,几小时等。
1、获取当前系统时间
2、获取当前系统时间的时间戳
3、时间戳 -> 日期
4、日期 -> 时间戳
5、时间比较
1、在拍摄窗口下,按“MENU”按钮,即可找到日期设置选项,首先设置好当前日期;
2、还是在拍摄窗口下,按“MENU”按钮,找到“日期标记”项,选择为“开”;
3、继续在拍摄窗口下,按方向键的中键,在拍摄模式选择(即选择“M1、M2--日期标志”处的选项),选中“日期标志”模式,进行拍照即可。 佳能数码相机在日期显示设置时,机型不同,有微小差别,有部分机型选择的是“日期标志”,有部分机型选择的是“明信片模式”。这两个设定的效果是一样的。
3、继续在拍摄窗口下,按方向键的中键,在拍摄模式选择(即选择“M1、M2--日期标志”处的选项),选中“日期标志”或“明信片模式”模式,进行拍照即可。
一 基本概念
日期是一个汉语词汇,读音为rì qī,意思是约定的日子和时间;指发生某一事情的确定的日子或时期。《元史·郝经传》等均有相关记载。
二 基本解释
邮戳上的日期模糊不清
三 引证解释
指发生某一事情的确定的日子或时期。
《元史·郝经传》:" 经 至 宿州 ,遣副使 刘仁杰 、参议 高翿 请入国日期,不报。"《官场现形记》第七回:"只要同你讲得来,包你事事办得妥当,而且又省钱,又不会耽误日期。" 鲁迅《呐喊·故乡》:"我已经将你到家的大约日期通知他,他也许就要来了。"
可以从 DayOfWeek 或 DayOfWeek 属性中获取用于指示与某个特定日期相对应的星期几的枚举值。 与此不同的是,检索星期几名称是一项格式化 *** 作,可通过调用格式化方法来执行,例如日期和时间值的 ToString 方法或 StringFormat 方法。 本主题演示如何执行这些格式化 *** 作。 从特定日期中提取指示星期几的数字 如果要使用日期的字符串表示形式,请使用静态 DateTimeParse 或 DateTimeOffsetParse 方法将其转换为 DateTime 或 DateTimeOffset 值。 使用 DateTimeDayOfWeek 或 DateTimeOffsetDayOfWeek 属性检索指示星期几的 DayOfWeek 值。 如有必要,可将 DayOfWeek 值强制转换(在 C# 中)或转换(在 Visual Basic 中)为整数。 下面的示例将显示一个整数,用于表示日期字符串表示形式中的星期几。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueDayOfWeek) ' Displays 3 DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine((int) dateValueDayOfWeek); // Displays 3 从特定日期中提取缩写的星期几名称 如果要使用日期的字符串表示形式,请使用静态 DateTimeParse 或 DateTimeOffsetParse 方法将其转换为 DateTime 或 DateTimeOffset 值。 您可以提取当前区域性或特定区域性的缩写的星期几名称: 若要提取当前区域性的缩写的星期几名称,请调用日期和时间值的 DateTimeToString(String) 或 DateTimeOffsetToString(String) 实例方法,并以 format 参数的形式传递字符串“ddd”。 下面的示例阐释对 ToString(String) 方法的调用。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("ddd")) ' Displays Wed DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("ddd")); // Displays Wed 若要提取特定区域性的缩写的星期几名称,请调用日期和时间值的 DateTimeToString(String, IFormatProvider) 或 DateTimeOffsetToString(String, IFormatProvider) 实例方法。 同时以 format 参数形式传递字符串“ddd”, 并以provider 参数的形式传递表示要检索其星期几名称的区域性的 CultureInfo 或 DateTimeFormatInfo 对象。 下面的代码阐释如何使用表示 fr-FR 区域性的 CultureInfo 对象调用 ToString(String, IFormatProvider) 方法。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("ddd", _ New CultureInfo("fr-FR"))) ' Displays mer DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("ddd", new CultureInfo("fr-FR"))); // Displays mer 从特定日期中提取完整的星期几名称 如果要使用日期的字符串表示形式,请使用静态 DateTimeParse 或 DateTimeOffsetParse 方法将其转换为 DateTime 或 DateTimeOffset 值。 您可以提取当前区域性或特定区域性的完整的星期几名称: 若要提取当前区域性的完整的星期几名称,请调用日期和时间值的 DateTimeToString(String) 或 DateTimeOffsetToString(String) 实例方法,并以 format 参数的形式传递字符串“dddd”。 下面的示例阐释对 ToString(String) 方法的调用。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("dddd")) ' Displays Wednesday DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("dddd")); // Displays Wednesday 若要提取特定区域性的星期几名称,请调用日期和时间值的 DateTimeToString(String, IFormatProvider) 或 DateTimeOffsetToString(String, IFormatProvider) 实例方法。 同时以 format 参数的形式传递字符串“dddd”, 并以provider 参数的形式传递表示要检索其星期几名称的区域性的 CultureInfo 或 DateTimeFormatInfo 对象。 下面的代码阐释如何使用表示 es-ES 区域性的 CultureInfo 对象调用 ToString(String, IFormatProvider) 方法。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("dddd", _ New CultureInfo("es-ES"))) ' Displays miércoles DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("dddd", new CultureInfo("es-ES"))); // Displays miércoles 示例 该示例阐释如何调用 DateTimeDayOfWeek 和 DateTimeOffsetDayOfWeek 属性以及 DateTimeToString 和 DateTimeOffsetToString 方法,以检索特定日期中表示星期几的数字、缩写的星期几名称和完整的星期几名称。 Dim dateString As String = "6/11/2007" Dim dateValue As Date Dim dateOffsetValue As DateTimeOffset Try Dim dateTimeFormats As DateTimeFormatInfo ' Convert date representation to a date value dateValue = DateParse(dateString, CultureInfoInvariantCulture) dateOffsetValue = New DateTimeOffset(dateValue, _ TimeZoneInfoLocalGetUtcOffset(dateValue)) ' Convert date representation to a number indicating the day of week ConsoleWriteLine(dateValueDayOfWeek) ConsoleWriteLine(dateOffsetValueDayOfWeek) ' Display abbreviated weekday name using current culture ConsoleWriteLine(dateValueToString("ddd")) ConsoleWriteLine(dateOffsetValueToString("ddd")) ' Display full weekday name using current culture ConsoleWriteLine(dateValueToString("dddd")) ConsoleWriteLine(dateOffsetValueToString("dddd")) ' Display abbreviated weekday name for de-DE culture ConsoleWriteLine(dateValueToString("ddd", New CultureInfo("de-DE"))) ConsoleWriteLine(dateOffsetValueToString("ddd", _ New CultureInfo("de-DE"))) ' Display abbreviated weekday name with de-DE DateTimeFormatInfo object dateTimeFormats = New CultureInfo("de-DE")DateTimeFormat ConsoleWriteLine(dateValueToString("ddd", dateTimeFormats)) ConsoleWriteLine(dateOffsetValueToString("ddd", dateTimeFormats)) ' Display full weekday name for fr-FR culture ConsoleWriteLine(dateValueToString("ddd", New CultureInfo("fr-FR"))) ConsoleWriteLine(dateOffsetValueToString("ddd", _ New CultureInfo("fr-FR"))) ' Display abbreviated weekday name with fr-FR DateTimeFormatInfo object dateTimeFormats = New CultureInfo("fr-FR")DateTimeFormat ConsoleWriteLine(dateValueToString("dddd", dateTimeFormats)) ConsoleWriteLine(dateOffsetValueToString("dddd", dateTimeFormats)) Catch e As FormatException ConsoleWriteLine("Unable to convert {0} to a date", dateString) End Try ' The example displays the following output to the console: ' 1 ' 1 ' Mon ' Mon ' Monday ' Monday ' Mo ' Mo ' Mo ' Mo ' lun ' lun ' lundi ' lundi string dateString = "6/11/2007"; DateTime dateValue; DateTimeOffset dateOffsetValue; try { DateTimeFormatInfo dateTimeFormats; // Convert date representation to a date value dateValue = DateTimeParse(dateString, CultureInfoInvariantCulture); dateOffsetValue = new DateTimeOffset(dateValue, TimeZoneInfoLocalGetUtcOffset(dateValue)); // Convert date representation to a number indicating the day of week ConsoleWriteLine((int) dateValueDayOfWeek); ConsoleWriteLine((int) dateOffsetValueDayOfWeek); // Display abbreviated weekday name using current culture ConsoleWriteLine(dateValueToString("ddd")); ConsoleWriteLine(dateOffsetValueToString("ddd")); // Display full weekday name using current culture ConsoleWriteLine(dateValueToString("dddd")); ConsoleWriteLine(dateOffsetValueToString("dddd")); // Display abbreviated weekday name for de-DE culture ConsoleWriteLine(dateValueToString("ddd", new CultureInfo("de-DE"))); ConsoleWriteLine(dateOffsetValueToString("ddd", new CultureInfo("de-DE"))); // Display abbreviated weekday name with de-DE DateTimeFormatInfo object dateTimeFormats = new CultureInfo("de-DE")DateTimeFormat; ConsoleWriteLine(dateValueToString("ddd", dateTimeFormats)); ConsoleWriteLine(dateOffsetValueToString("ddd", dateTimeFormats)); // Display full weekday name for fr-FR culture ConsoleWriteLine(dateValueToString("ddd", new CultureInfo("fr-FR"))); ConsoleWriteLine(dateOffsetValueToString("ddd", new CultureInfo("fr-FR"))); // Display abbreviated weekday name with fr-FR DateTimeFormatInfo object dateTimeFormats = new CultureInfo("fr-FR")DateTimeFormat; ConsoleWriteLine(dateValueToString("dddd", dateTimeFormats)); ConsoleWriteLine(dateOffsetValueToString("dddd", dateTimeFormats)); } catch (FormatException) { ConsoleWriteLine("Unable to convert {0} to a date", dateString); } // The example displays the following output to the console: // 1 // 1 // Mon // Mon // Monday // Monday // Mo // Mo // Mo // Mo // lun // lun // lundi // lundi 个别语言可能提供与 NET Framework 所提供的功能相同或互为补充的功能。 例如,Visual Basic 就包括这样的两个函数: Weekday,它返回指示特定日期中表示星期几的数字。 此函数将一周中第一天的序数值视为一,而 DateTimeDayOfWeek 属性却将其视为零。 WeekdayName,它返回当前区域性中与特定星期几相对应的周的名称。 下面的示例阐释 Visual Basic Weekday 和WeekdayName 函数的用法。 Dim dateValue As Date = #6/11/2008# ' Get weekday number using Visual Basic Weekday function ConsoleWriteLine(Weekday(dateValue)) ' Displays 4 ' Compare with NET DateTimeDayOfWeek property ConsoleWriteLine(dateValueDayOfWeek) ' Displays 3 ' Get weekday name using Weekday and WeekdayName functions ConsoleWriteLine(WeekdayName(Weekday(dateValue))) ' Displays Wednesday ' Change culture to de-DE Dim originalCulture As CultureInfo = ThreadCurrentThreadCurrentCulture ThreadCurrentThreadCurrentCulture = New CultureInfo("de-DE") ' Get weekday name using Weekday and WeekdayName functions ConsoleWriteLine(WeekdayName(Weekday(dateValue))) ' Displays Donnerstag ' Restore original culture ThreadCurrentThreadCurrentCulture = originalCulture 也可以使用 DateTimeDayOfWeek 属性返回的值检索特定日期的星期几名称。 此过程只需对 DayOfWeek 属性返回的值调用 ToString 方法。 但是,此技术并不生成当前区域性的本地化星期几名称,如下面的示例所示。 ' Change current culture to fr-FR Dim originalCulture As CultureInfo = ThreadCurrentThreadCurrentCulture ThreadCurrentThreadCurrentCulture = New CultureInfo("fr-FR") Dim dateValue As Date = #6/11/2008# ' Display the DayOfWeek string representation ConsoleWriteLine(dateValueDayOfWeekToString()) ' Displays Wednesday ' Restore original current culture ThreadCurrentThreadCurrentCulture = originalCulture // Change current culture to fr-FR CultureInfo originalCulture = ThreadCurrentThreadCurrentCulture; ThreadCurrentThreadCurrentCulture = new CultureInfo("fr-FR"); DateTime dateValue = new DateTime(2008, 6, 11); // Display the DayOfWeek string representation ConsoleWriteLine(dateValueDayOfWeekToString()); // Displays Wednesday // Restore original current culture ThreadCurrentThreadCurrentCulture = originalCulture; 编译代码 这些示例可能需要: 导入下列命名空间: SystemGlobalization 命名空间。 SystemThreading 命名空间,需要在编译 DayOfWeek 示例以及阐释 Weekday 和WeekdayName 函数的 Visual Basic 示例时使用。 这些示例还要求: 将对SystemCoredll 的引用添加到任何添加了代码示例的项目中。 请参见概念 执行格式设置 *** 作 标准日期和时间格式字符串 自定义日期和时间格式字符串
使用字符串的format,这种方式用的比较多,用来构建自定义的时间字符串,format的格式有通用的定义,比如YYYY代表四位的年份,MM代表月份,常用的格式化字符串如下:
G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE: 简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒
zzz: 时区
ZZZ:
以上就是关于iOS日历(单选、区间选择,组头悬停,分组月份阴影效果)全部的内容,包括:iOS日历(单选、区间选择,组头悬停,分组月份阴影效果)、这个怎么弄、命令提示符怎么获取当前是星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)