计算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( ...
随机推荐
- requestmapping等相关知识
@responseBody注解的使用 1. @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区 ...
- Java高级特性 第5节 序列化和、反射机制
一.序列化 1.序列化概述 在实际开发中,经常需要将对象的信息保存到磁盘中便于检索,但通过前面输入输出流的方法逐一对对象的属性信息进行操作,很繁琐并容易出错,而序列化提供了轻松解决这个问题的快捷方法. ...
- 20175202 《Java程序设计》第四周学习总结
20175202 <Java程序设计>第四周学习总结 第五章学习内容 1.子类的继承性: (1)子类与父类在同一包中的继承性:子类自然地继承了其父类中不是private的成员变量作为自己的 ...
- 通过 JDK 自带的 javap 命令查看 SynchronizedDemo 类的相关字节码信息
首先切换到类的对应目录执行 javac SynchronizedDemo.java 命令生成编译后的 .class 文件 然后执行 javap -c -s -v -l SynchronizedDemo ...
- c# 仿微信二维码生成
/// <summary> /// 生成二维码. /// </summary> /// <param name="data">需要添加进去的文本 ...
- oidc User.Identity.Name 为空解决方法
public override Task TicketReceived(TicketReceivedContext context) { var result = base.TicketReceive ...
- Xamarin+Prism开发详解七:Plugin开发与打包测试
有了上章[Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系]的基础,现在来理解Plugin开发就简单了. 本文实例代码地址:ht ...
- Windows系统中监控文件复制操作的几种方式
http://blog.sina.com.cn/s/blog_4596beaa0100lp4y.html 1. ICopyHook 作用: 监视文件夹和打印机移动,删除, 重命名, 复制操作. 可以得 ...
- 【mysql】批量更新数据
概述 批量更新mysql数据表数据,上网搜索基本都会说4~5方法,本人使用的更新方式为: INSERT ... ON DUPLICATE KEY UPDATE Syntax 可参见官方网站:inser ...
- oracle数据库报错ora-01653表空间扩展失败解决方案
1)ora-01653错误截图: 可以看到有两张表的insert受到了影响,都是在USERS表空间里.用以下SQL查看表空间使用情况: "表空间大小(M)",(a.bytes &q ...