在博客上发给爱好者和狂热徽章的评论中,添加了一条评论,即一项不错的功能是将您访问该网站的连续天数添加到用户的个人资料中。


我很想在您的用户页面上查看您使用SO / SF连续几天的次数。有点像在Unix机器上查看您的正常运行时间。 -代码从站


我认为这将是一个很好的功能,因此希望将其发布以供讨论。

我个人知道,我希望能够连续浏览我访问过该网站的几天,而不必自己弄清楚。

评论

我很失望地看到这个建议已经提出,但尚未得到答复。

我仅次于此,我刚刚达到31天,但还没有徽章,所以很明显我错过了一天,但是我不知道是上周还是29天前。
如此连续332天,当我达到365时我会获得双金吗? :)

似乎还没在area51上...

这是在2010年10月实施的。

#1 楼

在创建了两个基于连续30天的新徽章(“热情”,更早的“ Woot”)和100(“狂热”)之后,这是一个很大的建议。

我目前追求我的“ Woot”徽章(随后也追求我的“ Fanatic”徽章)-我认为大约需要20-25天。

评论


至少有30天存在-我不确定是否拥有它;)

- 罗兰肖
09年6月29日在20:43

我很自豪 - 我目前正努力让我的工作30天......没有线索,我是多么接近......不到30天,这是肯定的:)

–桑普森
09年6月29日在20:44

我和你在一起,乔纳森(Jonathan),我相信我只错过了一天(愚蠢的家庭度假!),但是我必须搜索日历以弄清楚自那时以来有多少天。

–提莫西·卡特(Timothy Carter)
09年6月29日在20:45

那么这种发展正在进行吗?

–user146056
2010-4-13在23:07



我知道我已经访问了60多天,因为SO是我的主页,但我的访问量显示为13,似乎有问题。

– Ta01
2010-6-22 12:41

我认为有一个错误,我昨晚在家时正在上SO,然后我今天开始工作,我的个人资料说8,然后我刷新了,并说1.有点奇怪。我想知道使用其他计算机是否会引起问题?

– JD Isaacks
2010-6-28 at 13:58

所以我连续41天...为什么我没有徽章?

–FabianCook
2012年10月7日,9:56

实际上是狂热者100天,狂热者30天

–FabianCook
2012年10月7日9:58

@RowlandShaw我离100只有4天的路程

–泰勒(Luke Taylor)
16年5月26日在0:30

#2 楼

我会发现并发天数计数器很有趣。

我很确定我已经连续使用StackOverflow和ServerFault超过30天了。

但是没有徽章。

每天访问StackOverflow很容易,但仍然“错过一天”。 StackOverflow的一天从午夜(GMT)开始。所以我的“ StackOverflow日”从我的时间(东部时间)晚上8点开始。因此可以想象,我只是在一个早晨登录,直到第二天晚些时候才回头...从技术上讲,这“丢失”了介于两者之间的按堆栈跟踪的一天。

我会没事的。


更新:哦,废话。可能有轻微的错误计算。我可能-可能-再过一两天。我们会看到的。

评论


最后一部分是一个好点。 “今天”被视为访问该网站的截止日期是什么?我碰巧想到这个晚上晚上11:55

–JSchaefer
09年6月29日在21:17

我的每日最高投票数计数器从东部时间晚上7点左右开始。可能是我最初注册时或其他时候。我不知道并发天数是否以相同的方式计算。

– Robert Cartaino
09年6月29日在21:48

我相信所有时间(代表上限,投票等)均基于格林威治标准时间。

–提莫西·卡特(Timothy Carter)
09年6月30日在1:52

我想你是对的。我昨晚看了看,原来我的“白天”是从晚上8点开始,时区是格林尼治标准时间-4h。因此,如果您在一天中的不同时间登录,则很容易错过“ StackOverflow日”。我将更新我的原始帖子。

– Robert Cartaino
09年6月30日在13:45

同样,您可以通过在UTC午夜附近进行活动来加倍工作时间(因此,如果您所在的时区是UTC-5,并且考虑了夏令时,则您需要在19:45到20之间进行活动:每隔15天)

–Rowland Shaw
09年8月13日在8:01

不幸的是,它在28小时之内无法正常工作。 xkcd.com/320

–mmx
09年9月9日在7:01

+1:很高兴我不是唯一对此感到惊讶的人(对不起)。我将计算机设置为在晚上7点自动加载所有站点,以防万一那天我还没去。我在格林尼治标准时间-5,所以100天后我感到非常失望。我想我一定已经离开了一两秒钟了。

– Pops
2010年5月11日在22:47

真令人失望。我已经工作了两个多星期,今天我登录才看到我访问量最大的serverfault.com只有3天。啊! Robert感谢您提供信息。

–城堡城
2010年6月23日在15:18



#3 楼

这种查询将能够提供配置文件的数据。

with numberedrows as(        
select 
   row_number() over (partition by UserID order by CreationDate desc) as NumRowsFromToday,
   datediff(day,CreationDate,getdate())+1 as DaysFromToday, 
   CreationDate, 
   UserID        
from tablename
where UserID = @UserID /* Optional line that can be removed to get everyone's current run */
)
select UserID, min(CreationDate) as StartOfRun, max(DaysFromToday) as LengthOfRun
from numberedrows
where DaysFromToday = NumRowsFromToday
group by UserID
order by max(DaysFromToday);


这是查询背后的想法:

我知道SQL确定访问的最小连续天数?他们每天每位用户仅存储一个条目(如果不是,则需要DENSE_RANK而不是ROW_NUMBER,并且OVER子句需要截断日期)。因此,如果您对这些天进行编号(向后),则当前连续天数仅包含行号与从那时到今天为止的天数相同(加一)的条目,因此您不会开始计算该天数从0天开始。

在(UserID,CreationDate)上有一个索引,它也应该很快运行。

所以...希望Jeff&co密切关注这个问题,可以考虑吗?

罗布

#4 楼

感谢您实现此功能。

我已经想了好一阵子了,当我达到100天标记并最终获得了当当徽章。一直以来,每天都虔诚地访问该网站,甚至在我的iPhone上添加书签,以便在旅行或一天中无法访问计算机或Internet的情况下单击该书签即可获得信用。

所以,我单击进入我的个人资料,我在...(连续滚动)...连续15天... F @#$!K

不知何故,在某个地方我一定没有对站点链接进行足够的单击,或者可能是时区问题,或者上帝知道了什么,但是在追逐此徽章大约6个月后,我显然无法获得它。 br />
之所以对这一功能表示赞赏,是因为我终于知道自己的立场。当我有问题或想回答这些问题时,我将回到只是访问该站点,而不是每天检查一次,只是进行点名。感谢您给我一天的时间。

#5 楼

如果您在个人资料中将下一个徽章设置为“狂热”,它将显示您已经连续访问的天数