八百年一次,这个月有5个礼拜五,5个礼拜六,5个礼拜天

简介:

昨天在微博上看到有人说:

image

 

看看日历,的确是这样:

image

 

但是凭程序员的直觉,感觉下一次,应该不需要800年啊,于是做了如下测试:

 

判断有5个礼拜五,5个礼拜六,5个礼拜天的方法:

1:该月必须有31天

2:该月1号必须是星期5.

 

static void Main(string[] args)
{
    DateTime dtNow = DateTime.Now;

    while (dtNow < DateTime.MaxValue)
    {
        DateTime nextMonth = dtNow.AddMonths(1);
        DateTime firstDayOfNextMonth=new DateTime(nextMonth.Year,nextMonth.Month,1);
        if (DateTime.DaysInMonth(nextMonth.Year, nextMonth.Month) == 31 &&
            firstDayOfNextMonth.DayOfWeek == DayOfWeek.Friday)
        {
            Console.WriteLine("下一次是:{0}",firstDayOfNextMonth);
            break;
        }

        dtNow = nextMonth;
    }

    Console.ReadLine();
}
代码比较简单,无非就是一个月一个月的检查,并判断是否符合上面的两点。
运行结果如下:
 
 
 
 
那看下上次发生是什么时候吧,把DateTime nextMonth = dtNow.AddMonths(1); 
变成DateTime nextMonth = dtNow.AddMonths(-1);
接着把dtNow<DateTime.MaxValue 该为 DateTime.MinValue<=dtNow
 
就可以了,运行结果如下:
 
 





本文转自LoveJenny博客园博客,原文链接:http://www.cnblogs.com/LoveJenny/archive/2011/07/06/2098836.html,如需转载请自行联系原作者
目录
相关文章
|
数据库
Discuz! X3.5 登录不了管理后台的处理方法集合
1. 取消IP认证。由于Discuz!论坛会认证IP,不允许不同IP地址同时登录后台,所以取消IP认证即可。修改方法:在网站根目录,Discuz!配置文件config目录下config_global.php 中找到如下代码:$_config[‘admincp’][‘checkip’] = 1把代码中“1”改成“0”。(修改后允许多IP同时登录后台,所以论坛的安全系数会降低)
833 0
Discuz! X3.5 登录不了管理后台的处理方法集合
|
Linux 开发工具 git
Git添加与提交文件与查看
一、Git添加 1、在终端或命令提示符中,导航到你的Git项目所在的目录,使用 cd 命令切换目录。 例如:(推荐linux)cd d/目录/目录;或(windows)cd D:\目录\目录; 2、在目标目录中,运行以下命令来初始化一个新的Git仓库,这将在当前目录下创建一个名为.git的隐藏文件夹,它是Git仓库的核心部分。 git init 3、使用以下命令将文件添加到Git的暂存区(Staging Area),这样会将所有新创建或修改的文件添加到暂存区,(需要新建一个文件,里面有内容)。
211 0
|
SQL JSON JavaScript
为什么从egg.js到nest.js(一)
进入部门工作后,接触到的node.js服务端框架,是egg.js,后面基于扩展增加了很多插件,比如:@Controller @Service等注解,还有针对egg-framework 定制化部门使用的底层framework。
429 0
|
存储 缓存 分布式计算
阿里云服务器内存网络增强型se1ne实例实例介绍
前几天阿里云刚刚在活动中新增了计算网络增强型sn1ne与通用网络增强型sn2ne实例,现在再次增加了内存网络增强型se1ne实例,很多新手用户对这个实例规格并不是很了解,下面简单介绍下这个实例的特点、适用场景及网络带宽、网络收发包PPS等指标数据,来了解下这两个实例,以便大家参考选择。
411 0
阿里云服务器内存网络增强型se1ne实例实例介绍
|
边缘计算 开发工具 UED
互联网新半场的流量生态——阿里云定向免流方案
当你正在游戏中肆意厮杀时,在你跟美女主播互动畅聊时,突然收到这样一条短信,你会不会心头一紧呢?80%的调查反馈显示,是的(个别土豪除外)。毕竟5块钱30M流量就能用一个月的时代已经过去了,我们玩的游戏也从XX玛丽、贪吃X等单机弱联网游戏过渡到了吃量狂魔的MMO、MOBA等大型网游之中。
8421 0
|
弹性计算 Kubernetes Serverless
免费试用Serverless容器3个月(新用户领100元代金劵)
阿里云容器服务团队联合弹性计算团队近日推出了面向新用户使用Serverless容器三个月的免费活动,无需购买ECS服务器,开发者就可以使用100元代金劵快速部署自己的web服务、执行Job任务或者简单的运行docker镜像,体验serverless容器的简单、便捷、弹性和低成本。
2967 0
免费试用Serverless容器3个月(新用户领100元代金劵)
|
Cloud Native 安全 Devops
云原生时代的DevOps之道
DevOps 是一种软件开发人员和 IT人员之间的合作过程,目标是高效地自动执行软件交付和基础架构更改流程。那云原生时代,企业又如何借助DevOps 实现产品快速、稳定、高效和安全地迭代,释放业务价值呢。 ## 什么是云原生 为了解决传统应用升级缓慢、架构臃肿、不能快速迭代、故障不能快速定位、问题无法快速解决等问题,云原生这一概念横空出世。 Pivotal 是云原生应用的提出者,并推
3468 0
|
Prometheus Kubernetes 监控
阿里云上万个 Kubernetes 集群大规模管理实践
阿里云容器服务从2015年上线后,一路伴随并支撑双十一发展。在2019年的双十一中,容器服务ACK除了支撑集团内部核心系统容器化上云和阿里云的云产品本身,也将阿里多年的大规模容器技术以产品化的能力输出给众多围绕双十一的生态公司和ISV公司。
2370 0
|
存储 算法 虚拟化
阿里云混合云备份服务
随着企业信息化程度越来越高以及业务的快速发展,各类数据成指数级增长,数据安全对企业的成功和业务的持续运营变得越来越重要。如何保证重要业务数据的可靠性,确保在出现灾难或者操作失误的情况下,能找回以前的数据拷贝,如何在最短的时间窗口完成数据的快速备份,如何实现备份数据的异地容灾存放,这些挑战让企业IT管理者不得不重新审视重要业务数据的保护方法。
2677 0