犯了一个低级的错误,还好及时改正了
有个业务是小朋友填写成绩,每门课每周只能添加一次,再次添加就给出已经添加过的提示。
这个再简单不过了,第一时间想到用SQL处理,但这样可能不利于阅读代码来理解逻辑,那用Java实现吧,数据库咱就不做过多的逻辑,只用来存取数据。
一周只能填一次,那就是周一0点开始到周天23点59分59秒,每个学科只有一个记录。时间范围确定了,撸下了令人悲伤的代码。
public static String getMondayOfThisWeek() {
Calendar instance = Calendar.getInstance(Locale.CHINA);
instance.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(instance.getTime());
}
搞完测试,完美通过。收工。
有没有人和我一样写过同样的代码,至今没有发现的!!!没有则好,有的话收拾收拾跑路吧。
因为一些不可抗拒因素,耽误了上线,周六晚上转辗反侧难以入睡,索性爬起来测试一下APP,这一测让原本没睡意的我雪上加霜。嗯?怎么回事,我怎么能一直录入成绩,不是限制一周只能录一次吗?
第一反应肯定不是我的锅,我怎么能犯这么低级的问题,嗯,肯定不是!!!明天提醒一下同事,让修改吧。稳住,继续睡觉。
熄灯后想了想,能添加成功好像是接口限制失效了,和同事有啥关系,我开始有点慌了,慌了,稳住。先想想会出什么问题,难道服务器不是最新代码?不,那会刚刚测试过,没得问题。那怎么回事?
突然,我想到了今天是周天,哦,该死,果然一到周末就出问题。
Java是老 美写的,我们每周开始第一天是周一,而老美是周日。比如今天2021-1-10号是周天,获取本周周一,对我们来说获取的是2021-1-04号,而对老美来说则是第二天那就是2021-1-11日。
这算是文化差异吗?竟然犯了这么低级的错误,幸好电脑在身边,开灯、开电脑、改bug一气呵成,强忍着睡意的我写下了如下代码。
获取每周周一
public static String getMondayOfThisWeek() {
Calendar c = Calendar.getInstance();
int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0) {
day_of_week = 7;
}
c.add(Calendar.DATE, -day_of_week + 1);
return new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(c.getTime());
}
获取每周周日
public static String getSundayOfThisWeek() {
Calendar c = Calendar.getInstance();
int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0) {
day_of_week = 7;
}
c.add(Calendar.DATE, -day_of_week + 7);
return new SimpleDateFormat("yyyy-MM-dd 23:59:59").format(c.getTime());
}
改完后测了一下,再三确认,上线,睡觉。
还好是带了电脑,要不然估计更加睡不着了。
离过年回家的日子越来越近,心早已按捺不住。 导致Bug成指数增加,稳住啊失忆。
上次点赞、在看的人已经脱单!!!你还在等什么,快点赞。
我是失忆,一个热爱技术的宅男,文章有任何问题您都可以在留言中指出。欢迎大家点赞、在看、留言。