博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分享一个生成反遗忘复习计划的java程序
阅读量:5136 次
发布时间:2019-06-13

本文共 3856 字,大约阅读时间需要 12 分钟。

 

想必这个曲线大家都认识,这是遗忘曲线,展示人的记忆会随着时间的延长慢慢遗忘的规律,同时还展示了如果我们过一段时间复习一次对遗忘的有利影响.

道理大家都懂,关键怎么做到?

靠在本子上记下今天我该复习哪一天的知识?或者手机上设定一个提醒?....

不,这些方法都太麻烦又难受了,因为光安排复习时间,就得让你写很长时间,而且复习的时候还得对照它们再去找对应的笔记.

今天我就跟大家分享一款我根据遗忘曲线自己开发的一款java小程序:

只要你告诉它首尾日期和磁盘地址,它就给你生成有规律的复习计划,像这样:

打开20190325.doc里面是这样的:

仔细看,里面日期的规律,前一天,前3天,前7天,前15天.......

对!反遗忘复习规律就在这里!!!

废话不多说,下面给大家分享代码:

=======================================================

package com.huawei.it.helloworld; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /**  * @author 一马平川1  * @date 2019/2/19 23:02  * @description  */ public class BatchCreateNoteFiles {
private static final int ADD_ONE_DAY = 1 ; public static void main(String[] args) throws IOException, ParseException {
BatchCreateNoteFiles batchCreateNoteFiles = new BatchCreateNoteFiles(); //按如下格式填入起止日期和生成文件的磁盘地址 batchCreateNoteFiles.createFile("20190220","20200220","E:\\MyNotes\\"); } //生成文件 public void createFile(String startDate,String endDate,String location) throws ParseException, IOException {
String prefix = location; String suffix = ".doc"; SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd"); String fileName = startDate; while (Integer.parseInt(fileName) <= Integer.parseInt(endDate)){
File file = new File(prefix+fileName+suffix); //给文件写入内容 initFile(file,fileName,f); Calendar instance = Calendar.getInstance(); instance.setTime(f.parse(fileName)); instance.add(Calendar.DAY_OF_MONTH,BatchCreateNoteFiles.ADD_ONE_DAY); fileName = f.format(instance.getTime()); } } //给文件写入内容(文件内容初始化) private void initFile(File file, String fileName, SimpleDateFormat f) throws IOException, ParseException {
FileOutputStream fs = new FileOutputStream(file); fs.write(getInitContent(fileName,f).getBytes()); } //获取文件初始化内容 private String getInitContent(String fileName, SimpleDateFormat f) throws ParseException {
Date noteDate = f.parse(fileName); Calendar instance = Calendar.getInstance(); instance.setTime(noteDate); StringBuilder sb = new StringBuilder("["); //获取1天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001); sb.append(f.format(instance.getTime())).append("]-["); //获取3天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 1); sb.append(f.format(instance.getTime())).append("]-["); //获取7天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 2); sb.append(f.format(instance.getTime())).append("]-["); //获取15天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 3); sb.append(f.format(instance.getTime())).append("]-["); //获取31天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 4); sb.append(f.format(instance.getTime())).append("]-["); //获取63天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 5); sb.append(f.format(instance.getTime())).append("]-["); //获取127天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 6); sb.append(f.format(instance.getTime())).append("]-["); //获取255天之前的日期 instance.add(Calendar.DAY_OF_MONTH,-0x0000001 << 7); sb.append(f.format(instance.getTime())).append("]"); return sb.toString(); } } ======================================================================= 本小程序的功能目标是:能自动给文档中初始化的日期内容添加上各自的超链接,这样就不用手动添加超链接了,如果你知道怎么操作,请大侠留言,谢谢! 本小程序接下来将利用Swing做一个亲和的界面,当然这不是重点,主要是更人性化一些. 此外,本博主想问问:怎么将java小程序封装成能双击启动的EXE程序?如果能这样,那这个小程序就很完美了! 大侠,请留下您宝贵的建议!

 

转载于:https://www.cnblogs.com/wangxuejian/p/10421391.html

你可能感兴趣的文章
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
距离公式汇总以及Python实现
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
php match_model的简单使用
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
STM32单片机使用注意事项
查看>>
移动开发平台-应用之星app制作教程
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
如何在maven工程中加载oracle驱动
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>