计算从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的更多相关文章

  1. SQL 计算某月有多少天

    今天用SQL Server 2005写查询语句,要求计算一个月平均每天发生的金额.以前往往喜欢查询相关的所有列,在代码中进行计算,还没有在SQL中写过. 第一印象就是:要考虑到润年还是平年,再判断是大 ...

  2. iOS 计算某个月的天数 计算某天的星期

    // 某年某月的天数 - (NSInteger)dayCount:(NSInteger)years { NSInteger count = ; ; i <= ; i++) { == i) { = ...

  3. java截取日期范围并计算相差月数

    前两天,媳妇单位让整理excel的某一个单元格内两个日期范围的相差月数,本人对excel操作不是很熟练,便写了个小程序计算了一下,原始需求如下: 计算投资期限的范围,并得到期限范围的相差月数 思路1: ...

  4. java计算一个月有多少天和多少周

    import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> * 创建时间:2010-5-17 下午05:25:58<br> * ...

  5. java 计算一个月有多少天和多少周

    import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> */ public class Test{ public static voi ...

  6. 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 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 ...

  7. C#WinForm中显示实时时间:年/月/日 时/分/秒 星期X

    //加载窗体时 string weekstr = ""; private void Form22_Load(object sender, EventArgs e) { this.t ...

  8. php中cal_days_in_month不可用时的替代方法(计算一个月的天数)

    在计算某个月中的天数时,由于PHP编译时没有加上--enable-calendar选项,会导致cal_days_in_month方法不可用. 这时,如果不能更改服务器的编译设置,可以通过以下方法实现该 ...

  9. oracle 年龄计算 岁 月 天

    select trunc(months/12) || '岁' || trunc(mod(months, 12)) || '月' ||       trunc(sysdate - add_months( ...

随机推荐

  1. spring IOC 和AOP 方面

    spring 的2大核心 是Ioc 和 aop  spring的依赖注入:在程序运行期间,由外部容器动态的将依赖对象注入到组件中  IOC: 实例化spring容器的二种方法 第一种:在类路径下寻找配 ...

  2. iOS兼容性(不断完善)

    1.iOs不支持iframe,不支持flash,如果移动端要嵌入视频,请用html5 的video标签.

  3. Docker之 数据持久化

    容器中数据持久化主要有两种方式: 数据卷(Data Volumes) 数据卷容器(Data Volumes Dontainers) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,可以绕过UFS ...

  4. 图像小波变换去噪——MATLAB实现

    clear; [A,map]=imread('C:\Users\wangd\Documents\MATLAB\1.jpg'); X=rgb2gray(A); %画出原始图像 subplot(,,);i ...

  5. 执行sql语句为什么?用PreparedStatement要比Statement好用

    PreparedStatement public interface PreparedStatement extends Statement;可以看到PreparedStatement是Stateme ...

  6. mysql 插入更新判断 ON DUPLICATE KEY UPDATE 和 REPLACE INTO

    平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主 ...

  7. npm i 出错

    npm i npm ERR! code ECONNRESET npm ERR! errno ECONNRESET npm ERR! network request to https://registr ...

  8. <Differential Geometry of Curves and Surfaces>(by Manfredo P. do Carmo) Notes

    <Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...

  9. SpringSecurity-UsernamePasswordAuthenticationFilter的作用

    UsernamePasswordAuthenticationFilter应该是我们最关注的Filter,因为它实现了我们最常用的基于用户名和密码的认证逻辑. 先看一下一个常用的form-login配置 ...

  10. 6、 (★、※)root that results in a highest tree

    问题:对于一棵特定的树,选择合适的根结点,使得树的高度最大. 思路: 先选择一个结点,从该结点开始遍历整棵树,获取能达到的最深的顶点(记为结点集合A): 然后从集合A中任意一个结点出发遍历整棵树,获取 ...