# WeeklyPlanTableHelper **Repository Path**: yoipdu/weekly-plan-table-helper ## Basic Information - **Project Name**: WeeklyPlanTableHelper - **Description**: 将周计划表转换为日历文件的简单java程序 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-03 - **Last Updated**: 2023-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 周总结计划小帮手 这个代码能将周总结最后的下周计划表转换成ICS文件,双击ICS文件即可导入到系统自带的日历实现提醒功能。 ## 展示 ## 如何使用 - fork仓库之后之间运行Main类中的主方法即可,根据提示输入文件的路径和全称。 !!!可能你不会运行成功,因为我们书写的周计划表格式不一样,请实现[Switcher抽象类](####Switcher抽象类)或[input抽象类](####input抽象类)。 ## 代码解释 ### design包 design包下是抽象设计,含有*Input*、*Switcher*、*CalendarBuilder*、*Output*,以及存放数据的中间实体类*Standard*。 #### input抽象类 这个抽象类有两个抽象方法,*input()*和*toData()*。 - input(),这个方法负责用户的输入。比如控制台输入文件,或者JUI选择文件,又或者是自动选择同一个文件夹下最新的某个文件。抽象此方法方便扩展。 - toData(),此方法把文件信息粗加工出来。比如docx文档有很多内容,就需要把周计划表的位置找出来并转成String类型,方便后续细加工。 #### Switcher抽象类 这个抽象类有一个抽象方法*conversion(String origin)*和一个list列表。 - `List conversion(String origin)`,这个方法负责将Input传来的Date字符串数据转为Standard列表,转为Standard列表方便后续生成日历文件。 这个方法就是细加工,将Date字符串里混杂的`\t`,`\n`,时间、内容等信息提取出来,并存为一个Standard对象放在list列表里。 **这应该是一个使用比较频繁的抽象类,因为每个人写周计划表的格式或者表头标题排序不一样,比如时间在内容的前面,或者内容在时间前面,所以程序没有正确导出ICS文件的问题所在很大程度在于继承Switcher抽象类的类处理细节和自己周计划表对不上,这就需要自己去实现细节。** #### CalendarBuilder抽象类 这个抽象类的功能是将Standard实体类转为ICS文件内容,所以只有一个抽象方法*DataToString(List standards)*。 - `String DataToString(List standards)`,大部分情况下不需要实现这个抽象类,使用[DefaultCalendarBuilder](./src/main/java/impl/defaultImpl/DefaultCalendarBuilder.java)即可,只要是正确的Standard列表就可以转换成ICS文件内容。*如果你需要添加一些额外的日历内容,比如地点、循环日历等,就可以继承此抽象类并去实现它。* #### Output抽象类 此方法用于ICS日历文件输出,只有一个抽象方法*Output(String calendarBuilderData)*。 - Output(String calendarBuilderData),将CalendarBuilder加工出来的ICS文件内容字符串写入到文件中,有一个简单的默认实现[DefaultOutput](./src/main/java/impl/defaultImpl/DefaultOutput.java) ### ICS包 自己编写的一些ICS日历文件节点。如果需要进一步了解ICS文件格式,请访问[icalendar.org](https://icalendar.org/),如果需要了解关于Java的成熟日志框架可以搜索*iCal4j* ### impl包 这里放置具体的实现类。