Error 500

论坛文本生成器制作记录

起因

突如其来想写论坛文,但是在typora里写感觉很奇怪,没办法用md制作类似论坛格式的文本样式。上网搜索了一下只有用python写的脚本,懒得安装python环境,打算参照人家的自己用Java写一个。

过程

主体构思

由于我不懂python,只能勉强读懂前人大概是分别生成年月日时分秒(怀疑是使用当前系统时间然后修改时分秒),不同时段设定不同的发帖频率,在上一层楼的时间上根据发帖频率计算得来的时间间隔获得下一层的时间。
但是,我觉得这样的计算写起来太麻烦了。也不懂Java要怎么实现这个思路。
所以决定用Java自带的时间函数来制作随机时间。
即,在某个时间段内,根据所需楼层数,生成随机时间点。
参考了网上在时间段内生成时间点的写法

private static Date RandomTime(String start_time,String end_Time){
        try {
            SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start= format.parse(start_time);
            Date end=format.parse(end_Time);
            if (start.getTime() >= end.getTime()) {
                return null;
            }
            long date = random(start.getTime(), end.getTime());
            return new Date(date);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }
    private static long random(long begin,long over){
        long rtn = begin + (long) (Math.random() * (over - begin));
        if (rtn == begin || rtn == over) {
            return random(begin, over);
        }
        return rtn;
    }

这样就能获得一个随机的时间。

本来考虑在随机数上做文章,得到和前人一样的在特定时间段内发帖数量多的效果,但Java中取随机底层使用的是线性同余算法X(n+1) = ( A * X(n) + B ) % C,根据当前 Seed 乘以一个系数 A,然后加上一个偏移 B,最后按照 C 进行取余,如果要实现不同的随机分布,需要修改seed值,且代码中输入的时间段是无法修改的,这样做的效果不好。因此选择让用户自己限制和输入时间段来做到目标效果。(唯一的问题是,需要多次输入时间参数)
生成N层楼,所以要循环n次,得到n个时间点,同时,楼层的时间是有顺序的,要将时间放在数组中排序。
排序后就可以循环输出需要的文本了。

附加功能

输出文本之后,还想再折腾,于是添加了选择要生成的文本格式和输出文档功能。

注意事项

其他

本来以为打包后可以直接像可执行文件那样点击即用想要分享给其他人使用,但Java文件运行一定需要jre环境,搜索了一下打包成exe文件大小会陡增,遂放弃……
目前程序只能执行一次,每次运行完都需要重新打开,懒人觉得这不行!但累了,下次再说吧。
项目上传到了GitHub上,为什么生成出的txt文件在网站上显示是乱码,不懂。