周日和周一的人群行为差异

通过对用户上网购物频率的数据统计发现,工作日尤其是上午10点至下午18点为网购高峰期,而周末上网购物频率相对较低,且主要集中于上午时段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做过一个统计,主要是记录一天每个时间用户上网逛购物的频率,得到如下的图,挺有趣的。

 

红色的线条是周一的结果,深蓝色的线条是周日的结果。

首先我们发现,红线要高于蓝线。工作日上班时间,人们逛购物网站的频率要大于周末!人们更喜欢在工作的时候逛网站购物。很超出我的预期,我本以为周末大家闲了,更有时间去逛个够。估计老板们看到了很郁闷啊。

 

如果我们看一条线更仔细一点,比如红线,我们发现,八点半之后上网购物的频率节节攀升,而且八点半有个小高潮。10点到12点是高峰。然后大家吃饭去了,饭后午休,所以12点到14点,上网率反而下降,看来空余时间大家反而不愿意上网购物。从14点到18点又是一个持续长久的购物高峰。18点之后,各回各家,上网率下降了。20点上网率又抬头,大家直接购物到22点。22点后,大家洗洗睡了,上网率直线下降,一直降,但是还是不为零,大半夜的,甚至凌晨2点还有人在逛!凌晨4,5点左右,上网率降到最低。过了5点,上网率抬头,迎接新一天的上网购物潮。

 

周末的曲线大致也类似,不同的是,凌晨几乎没有人上网!大家齐刷刷的在凌晨2点睡觉了!直到早上9点,上网率才抬头。这是什么原因,百思不得其解。周末大家反而愿意睡觉,工作日大家反而不愿意睡觉,哪怕第二天要上班!

十点钟达到一个稳定之后,整天都比较稳定,不过还是看得出来,饭点时大家上网率有下降。

 

做社会人群行为统计还是很有趣的,让我开了眼界了,好多结论都和我自己的理解不一致。看来,社会学的大数据分析还是很有价值的。

 

<think>好的,用户需要的是在VB中获取本周一周日的日期函。首先,我需要回忆一下VB的日期处理函。VB中有Date类型相关的函,比如Now、DateAdd、DatePart等。用户想要的是当前周的周一周日,这涉及到确定当前日期是星期几,然后调整到周一周日。首先,当前日期可以通过Date.Today或Now获取。然后,需要知道当前日期是星期几。在VB中,Weekday函返回一个整,默认情况下星期日是1,星期一到星期六是2到7。所以,比如今天是星期四,Weekday返回5。要计算本周的周一,需要从当前日期减去(当前星期几-2)天。例如,如果今天是星期四(Weekday返回5),那么5 -2=3,减去3天就是周一。但是要注意,如果当前是星期日(Weekday返回1),那么1-2 =-1,这时候可能需要调整到上周的周一,或者根据具体情况处理。同样,计算本周的周日,可能需要加上(7-当前星期几)天。例如,如果今天是星期四(Weekday返回5),7-5=2,加上2天就是周日。但如果是星期日,则直接就是当前日期。 不过,可能需要考虑不同的周开始设置。有些系统可能将周一作为一周的第一天,这时候可能需要调整Weekday函的参。比如使用Weekday函的第二个参指定FirstDayOfWeek.Monday,但需要确认VB中是否支持这个参。另外,用户提供的引用中有关于cal命令的参,其中提到-m参周一作为一周的第一天,这可能用户的需求相关,但用户需要的是VB代码,所以可能需要忽略这部分引用,除非有直接关联。在代码示例中,用户可能需要一个函,返回本周的周一周日。例如:Function GetWeekDates() As(MondayAsDate,Sunday AsDate)DimcurrentDateAs Date= Date.TodayDimdayOfWeek AsInteger =Weekday(currentDate, FirstDayOfWeek.Monday)DimmondayAs Date= currentDate.AddDays(-(dayOfWeek -1))Dim sunday AsDate =monday.AddDays(6)Return (monday, sunday)End Function这里需要注意Weekday函的第二个参是否可用,可能需要测试。如果VB的Weekday函不支持FirstDayOfWeek参,可能需要调整计算方式。例如,如果默认情况下星期日是第一天,那么计算方式可能需要调整。例如,如果当前日期是2023-10-12(星期四),默认Weekday返回5(因为星期日是1),那么要得到周一,需要减去(5 -2)天,即3天,得到2023-10-09。周日则是周一加6天,即2023-10-15。但另一种方法是根据当前日期调整到最近的周一。例如,使用DateAdd函,通过计算当前日期周一的天差。 可能需要考虑不同的情况,比如当今天是周一,则直接返回今天,周日则是今天+6天。需要测试不同的情况,确保代码的正确性。另外,用户可能需要考虑跨月的情况,比如当前日期是某个月的最后几天,计算后的周一周日可能在下一个月份。 总结来说,关键是确定当前日期的星期几,然后调整到本周的周一周日。需要正确处理Weekday函的返回值,并根据需要调整天。</think>在VB.NET中,可以通过以下方式获取本周一周日的日期: ```vb Public Function GetWeekDates() As (Monday As Date, Sunday As Date) Dim currentDate As Date = Date.Today Dim dayOffset As Integer = currentDate.DayOfWeek - DayOfWeek.Monday ' 处理跨周情况(周日时DayOfWeek枚举值为0) If dayOffset < 0 Then dayOffset += 7 End If Dim monday As Date = currentDate.AddDays(-dayOffset) Dim sunday As Date = monday.AddDays(6) Return (monday, sunday) End Function ``` **代码说明**: 1. 使用`DayOfWeek`枚举值直接获取星期信息,比`Weekday()`函更直观 2. 通过`AddDays()`方法进行日期加减运算 3. 处理周日时`DayOfWeek`枚举值为0的特殊情况 4. 返回包含周一周日日期的元组 **示例输出**(假设当前日期为2023-10-12): - 本周一:2023-10-09 - 本周日:2023-10-15 该算法通过日期偏移计算实现,时间复杂度为$O(1)$,适用于高频调用场景。注意该方法定义的周区间为周一周日ISO标准周定义可能不同[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值