上学期开学就把大致的写完了。

但是年少无知,不知道还有单双周这样的操作,于是摸到现在才写。

虽然App store有很多课程表的应用,但用起来还是自己做的感觉好。

但用ics课程表,优点还是不少的:

  • 可以设置上课提醒,会自动发送推送。
  • 可以节省手机内存,不用装app
  • 可以统一管理日程表,全部装在日历中
  • 可以通过icloud云端同步,在所有设备中提示
  • 方便的查询每节课的信息以及上课所在的教室
  • ios系统的日历对地址自带GPS定位系统

效果图

Iphone日历效果图

Mac日历效果图

开源代码

Github主页

可以在release界面下载压缩包。

编写原理

  1. 代码用python实现。
  2. excelReader.py从网上python读取excel的程序参考完成,用于提取excel的课表信息,生成conf_classInfo.json。
  3. main.py读取conf_classInfo.json和conf_classTime.json完成ics的制作。

使用方法

  1. 在Github上下载所有Sample文件。链接在上方。
  2. 填写课表时间信息,打开conf_classTime.json,完成相应的时间修改。Sample提供的课表时间是华东师范大学的作息表。
  3. 在classinfo.xlsx填写课程表信息,如果是mac的iNumber,需要导出成xlsx格式。excel的列信息分别是:
    • className:课程名称,老师信息也可以一起写在这里
    • startWeek:课程起始周数
    • endWeek:课程结束周数
    • weekday:课程在星期几,比如输入\(1\)代表周一,\(7\)代表周日
    • week:代表单双周。输入\(1\)代表单周的课,\(2\)代表双周的课,\(3\)代表每周都有的课
    • classTime:课程的时间,与步骤1定义对应,比如输入\(1\)代表“第1、2节课”,\(4\)代表“第5、6、7节课”
    • classroom:上课所在的教室
  4. 前两步骤完成后不要忘了保存。
  5. 打开excelReader.py并编译,按照指令检查excel确认信息输入无误,输入\(0\)继续,当提示“All done”的时候,文件夹下会生成一个新的文件conf_classInfo.json,里面有课程信息
  6. 打开main.py并编译
  • 首先会提示输入日期,按照要求输入即可,如果格式输入错误,会有提示重新输入。接着程序会自动配置
  • 设置日程提示时间,我自己选择了提前十分钟,日历会推送通知给你。
  • 接着程序会自动配饰ics文件,如果产生问题,会出现提示(比如格式不对之类的)。
  • 最后出现字样”icsCreateAndSave”的时候,文件中已经产生了一个新的ics文件
  • mac下直接打开ics文件会产生如下配置界面,选择“新建日程”机会在左侧产生新的一栏“课程表”,再通过icloud同步至手机即可
  • 安卓系统可以直接在手机里面打开ics,会自动配置到手机的日历

到这里就全部完成啦。

Categories: 工程

2 Comments

Bill Chen · 2019年3月2日 at 上午9:56

!这个功能真的太实用了吧,我每学期都是手动输入的,特别麻烦。正有个要写一个小工具的想法就看到了这一篇blog。感谢博主。

jxtxzzw · 2019年4月10日 at 下午5:18

太强了
真是好东西

发表评论

电子邮件地址不会被公开。 必填项已用*标注