zhenzhubay.com

珍珠湾全球网

 找回密码
 用户注册
查看: 66626|回复: 12
打印 上一主题 下一主题

打卡程序答疑

[复制链接]

87

主题

83

好友

17万

积分

精华
20

跳转到指定楼层
楼主
发表于 2013-12-19 05:50:22 |只看该作者 |倒序浏览
岳东晓 (2013/12/18 13:48): 程序有问题怎么办?最直接、简单的方法是看源代码。我在之前贴了这篇《》,却无人愿意施以援手。只好自己看了。 先看看打卡的好处,每天奖励分数为 1+ 2n,其中n为连续打卡天数,那么连续打卡N天会得多少金币呢? 金币数=Nn=1(1+2n)=(2+N)N 如果连续打卡365天,那么金币数= (2+365)*365= 133955。哇!我得写多少博文啊?程序到底有什么问题?我认为是因为它在两处用了不同时区的时间。1)在记录打卡时间是用的是北京时间;2)在计算当前日期时却用的

打卡程序答疑

程序有问题怎么办?最直接、简单的方法是看源代码。我在之前贴了这篇《打卡程序问题求解》,却无人愿意施以援手。只好自己看了。

先看看打卡的好处,每天奖励分数为 1+ 2n,其中n为连续打卡天数,那么连续打卡N天会得多少金币呢? 

金币数=Nn=1(1+2n)=(2+N)N 如果连续打卡365天,那么金币数= (2+365)*365= 133955。哇!我得写多少博文啊?

程序到底有什么问题?

我认为是因为它在两处用了不同时区的时间。

1)在记录打卡时间是用的是北京时间;

2)在计算当前日期时却用的是服务器的上设置的时区时间,这是美国太平洋时间

程序工作机制是先看上次记录,判断今天是否已经打卡,如果已经打卡就不进行了。因为用的是北京时间记载,却用美国西部时间进行判断,问题就出来了。

要顺利打卡,必须选择北京与旧金山是同一个日期的时间段。比如说现在是旧金山时间12月18日下午两点,而北京时间是19日早上6点,这就不行。两地时间差为30-14=16小时。因此,只有在北京时间下午四点到11:59打卡才行。纽约的同学要在晚上9点以后打卡,换成旧金山时间那是零点了。

这个我没有去实验,大家看对不对。

怎么修改呢? 我看在某个地方把时间差加上即可。但我怕这样一来,某些连续打卡的同学又被中断重来了。所以得想清楚先。


您需要登录后才可以回帖 登录 | 用户注册

Archiver|手机版|珍珠湾全球网

GMT+8, 2025-4-11 17:23 , Processed in 0.014283 second(s), 9 queries , Memcache On.

Powered by Discuz! X2.5

回顶部