zoukankan      html  css  js  c++  java
  • 一个有趣的函数——关于时间

       最近做项目中要做一个限制每天领奖的次数,以及每周的领奖的次数。如何判断上次记录的时间是否和今天是同一天呢?可能大家一开始的思路就是过24小时不就一天了吗?呵呵,确实不错,可是现在区分的是:是否是相同的一天。这就清晰了,只要知道今天是今年的多少天和上次记录的时间一比较就可以了呗。我把代码贴一下,由于是在vs2008环境下编译通过的,gcc我没试,要是有人在gcc不好使就看看时间转换的那个函数就行了。

     

      然后关键说说如何检测同一周呢,这个tm(不知道tm的去查msdn就行了)结构体里没有定义今年的周数。但是可以获取一个时间是这个时间对应的周的第几天。通过这个思路不就很好解决了吗?我用7减去时间对应的tm_wday得到的差值和现在的时刻减去当时的时刻的天数作比较,如果小于的话就是还在本周。可能有点绕,我直接贴代码,大家就理解了。

     

       这期间有句如果weekday等于0就让它等于7,这个是由于星期在外国和咱理解的不一样,他们从周日开始一周的开始。而咱们是周一开始计算一周的开始,这样按照tm返回的周日就和咱们认知的星期对应不上了。周一到周日不能成等差数列。所以就自己构造一个咱们自己认知的星期。别看我现在说的轻松,当时就没转过劲来,非要从零开始计算这样就陷入一个误区了,应为从零开始的话,是用的上周的天数。自然得到的结果就不对了。

       从这个小小的实例中,我们可以看见大家的大脑在几千年的不断进化中思考问题的方式总是带有惯性的。遇到一个问题我们先会考虑它的定义,然后从定义解决问题。可是我们总是不能及时的考虑边界条件,可能思维思考方式的维数不够,不能立体的多线程同时思考问题。

  • 相关阅读:
    [zt]在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
    线程间操作无效: 从不是创建控件“...”的线程访问它。
    Unity IoC + WCF + wsHTTPBinding + Certificate Authorization
    [转]PowerDesigner使用教程 —— 概念数据模型
    C# Post数据和接收简单示例【摘】
    163相册验证码图片的识别手记之一 去除干扰
    实现WCF和Unity 的集成
    Html.ActionLink 几种重载方式说明及例子
    如何从程序员到项目经理【转帖51cto】
    OSG闪存
  • 原文地址:https://www.cnblogs.com/fengju/p/6174361.html
Copyright © 2011-2022 走看看