计算a月的第b个星期c
计算从y1到y2年a月的第b个星期c的日期
#include<iostream>
using namespace std;
bool isLeap(int y)
{
if(y%== || y%==&&y%!=)
return true;
return false;
}
int main()
{
int a,b,c;
int y1,y2;
int pre_ydays = ; //
int pre_mdays = ;
int week = ;
int b1 = ;//用于计数,第b1个星期c
int day = ;//用于记录当前是是第a月的第几天
int months[]= {,,,,,,,,,,,,};//每个月的天数
cin>>a>>b>>c>>y1>>y2;
if(c == ) //因为7%7 =0
c = ;
for(int i=;i<y1;i++) //计算从1850年到y1年之前共有多少天
{
if(isLeap(i))
pre_ydays += ;
else
pre_ydays += ;
}
week = (pre_ydays+) % ;//计算y1年1月1号是星期几,因为1850年1月1号是星期二,所以要加2
for(int y = y1;y<=y2;y++)//从y1年到y2年遍历
{
//如果是闰年2月份是29天
if(isLeap(y))
months[] = ;
for(int m=;m<a;m++)
{
pre_mdays += months[m];//记录从y年1月1号到a月1号之前有多少天
}
week = (pre_mdays + week)%; //计算呢a月1号是星期几
b1 = ;//用于记录第b1个星期c,初始化为0
day = ;//记录到第几天了
for(int d = ;d<=months[a]; d++)
{ if(week == c)//是星期c
{
b1 ++;
}
if(week==c && b1==b)//是当前日期
break;
day++;
week = (week+)%;
}
printf("%4d/%02d/%02d\n",y,a,day);
//为计算下一年做准备
pre_ydays = pre_ydays+;
if(isLeap(y))
{
pre_ydays += ;
months[] = ;
}
week = (pre_ydays +)%;
pre_mdays = ;
}
return ;
}
计算a月的第b个星期c的更多相关文章
- SQL 计算某月有多少天
今天用SQL Server 2005写查询语句,要求计算一个月平均每天发生的金额.以前往往喜欢查询相关的所有列,在代码中进行计算,还没有在SQL中写过. 第一印象就是:要考虑到润年还是平年,再判断是大 ...
- iOS 计算某个月的天数 计算某天的星期
// 某年某月的天数 - (NSInteger)dayCount:(NSInteger)years { NSInteger count = ; ; i <= ; i++) { == i) { = ...
- java截取日期范围并计算相差月数
前两天,媳妇单位让整理excel的某一个单元格内两个日期范围的相差月数,本人对excel操作不是很熟练,便写了个小程序计算了一下,原始需求如下: 计算投资期限的范围,并得到期限范围的相差月数 思路1: ...
- java计算一个月有多少天和多少周
import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> * 创建时间:2010-5-17 下午05:25:58<br> * ...
- java 计算一个月有多少天和多少周
import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> */ public class Test{ public static voi ...
- 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 1.1900年1月1号开始 * 2.星期 : 直接用总天数对7求余数 31 28 59 / 7 = 5 * 3.以\t来个开
public class Demo4 { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
- C#WinForm中显示实时时间:年/月/日 时/分/秒 星期X
//加载窗体时 string weekstr = ""; private void Form22_Load(object sender, EventArgs e) { this.t ...
- php中cal_days_in_month不可用时的替代方法(计算一个月的天数)
在计算某个月中的天数时,由于PHP编译时没有加上--enable-calendar选项,会导致cal_days_in_month方法不可用. 这时,如果不能更改服务器的编译设置,可以通过以下方法实现该 ...
- oracle 年龄计算 岁 月 天
select trunc(months/12) || '岁' || trunc(mod(months, 12)) || '月' || trunc(sysdate - add_months( ...
随机推荐
- Dart Map<> 添加 元素
Map<String, WidgetBuilder> routesList() { Map<String, WidgetBuilder> re = new Map<Str ...
- zabbix性能优化记
以前用zabbix,都是简简单单的把服务端.客户端一搭,模板监控项一弄就完了.没怎么真正去弄过优化啊之类的.现在有个场景就是获取zabbix的数据贼慢,得对zabbix进行优化,开始动手分析一下. ...
- 承接AR定制AR项目外包(正规公司,内附案例)
京团队长年承接AR项目外包 咨询QQ:372900288 微信:liuxiang0884 以下是AR项目案例演示,索取更多案例请通过以上方式在线联系我们
- Delphi XE5 Android 调用手机震动
uses Androidapi.JNI.Os, Androidapi.JNIBridge; function GetVibratorArray(const AIntArr: array of Int6 ...
- [蓝桥杯]PREV-44.历届试题_青蛙跳杯子
问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙 ...
- centos7 源码安装redis
安装3.x [root@node1 ~]# yum install wget gcc-c++ make [root@node1 ~]# wget http://download.redis.io/re ...
- 微信小程序精品demo
http://www.jianshu.com/p/0ecf5aba79e1 感谢笔者的分享!
- 一台电脑上配置多个tomcat同时运行
好使 1 1.配置运行tomcat 首先要配置java的jdk环境,这个就不在写了 不懂去网上查查,这里主要介绍再jdk环境没配置好的情况下 如何配置运行多个tomcat 2.第一个tomcat: ...
- 知识点:图说 Mysql 权限管理
图: #授权表 user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段 db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段 tables_priv ...
- 转:细说ASP.NET Windows身份认证
转自:https://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html 细说ASP.NET Windows身份认证 阅读目录 开始 认识A ...