【王道机试笔记02】日期类问题

这篇博客详细介绍了如何解决机试中的日期类问题,包括计算日期差值和确定日期对应的星期。通过代码示例2.6和2.7,解释了如何处理这些常见问题,同时讨论了如何确定一年中的第几天以及日期的打印方法。
摘要由CSDN通过智能技术生成

日期类问题

例2.3 日期差值

代码 2.6

通过预处理将日期和原点(00000101)的差值存储在数组中,求两个日期差值转换为求两个日期和原点距离的差值。
我们在过程中定义了一个宏来判断日期是否在闰年中。

#include<iostream>
#include<stdlib.h>
#define isRun(x) x % 4 == 0 && x % 100 != 0 || x % 400 == 0
using namespace std;
int DayofMonth[13][2] = {
	31,31,
	28,29,
	31,31,
	30,30,
	31,31,
	30,30,
	31,31,
	31,31,
	30,30,
	31,31,
	30,30,
	31,31
};
struct Date{
	int Year;
	int Month;
	int Day;
	void nextDay(){
		Day++;
		if(Day > DayofMonth[Month-1][isRun(Year)]){
			Day = 1;
			Month++;
		}
		if(Month > 12){
			Month = 1;
			Year++;
		}	
	}
};
int buf[5001][13][32];
int main(){
	Date d;
	int cnt = 0;
	d.Year = 0;
	d.Month = 1;
	d.Day = 1;
	while(d.Year != 5001){
		buf[d.Year][d.Month][d.Day] = cnt;
		d.nextDay();
		cnt++;
	}
	int a,b;
	int minus;
	whil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值