我的参考四班三倒

(195) 2024-01-16 18:01:01
#include<iostream>

using namespace std;
class work
{
private:			// 年 月 日	
	bool Isyear ( int year )		//判断是否为 闰年
	{
		return ( (0 == year % 4 && 0 != year % 400 ) || ( 0 == year % 400 ));
	}
	int GetmonthDay ( int year, int month )		//返回某年某月的天数
	{
		int Daynumber;
		if ( 2 == month )			//2月单独处理
		{
			if ( Isyear ( year ) )
				Daynumber = 29;
			else 
				Daynumber = 28;
		}
		else
		{
			if ( (month < 8 && 1 == month % 2) || ( month >= 8 && month % 2 == 0))		// 8月前奇数 31天 8月后 偶数 31天
				Daynumber = 31;
			if (( month < 8 && 0 == month % 2) || ( month >= 8 && month % 2 == 1 ))
				Daynumber = 30;
		}
		return Daynumber;	
	}
public:
	int NowToDay ( int year, int month, int day)	//计算有多少天。。。
	{
		int DiDay, i;
//2013年
		if ( year == 2013 )
		{
			DiDay = 0;
			for ( i = 9  ; i < month; i++)		//月份天数   现在是 从9月算
				DiDay += GetmonthDay ( year, i);
			DiDay += day - 10;			//从10号开始
		}
// 2014年以后
		if ( year >= 2014)
		{
			DiDay = 0;
			for ( i = 9  ; i < 13; i++)		//月份天数   现在是 从9月算算到 年底
				DiDay += GetmonthDay ( year, i);
			DiDay += day - 10;
			for ( i = 2014 ; i < year ; i ++)			//2014年 多少天
				if ( Isyear ( i ))
					DiDay += 366 ;		//闰年+366
				else
					DiDay += 365;
			for ( i = 0; i < month ; i++)
				DiDay += GetmonthDay ( year , i);   // 每月多少天
			DiDay = DiDay - (GetmonthDay( year, i) - day);			//这个月有几天。  
		}
		return DiDay;	
		
	}
	bool Input ( int year, int month, int day)
	{
		int Tureday;
		if( year < 2013  || month >= 13 || day > 31 )		//如果输入的日期小于 2013 或者  大于 13月  或者大于31 天 返回假
		{
			return false;
		}
		else
		{
			Tureday = GetmonthDay ( year, month );
			if ( day > Tureday )
				return false;
		}
		return true;
	}
	int FindDayB(int year, int month, int day )		//查找某一天是休息还是上班
	{
		int all;
		char week[8][20]= {
  
  {"工作第一天"},{"工作第二天"},{"工作第三天"},{"工作第四天"},
		{"工作第五天"},{"工作第六天"},{"休息第一天"},{"休息第二天"}};
		all = NowToDay (year, month, day);
		char night[3][20] = {
  
  {"中班"},{"夜班"},{"早班"}};
		cout<<"---------"<<night[((all + 6) / 8) % 3];
		cout<<"B组员工"<<week[(all + 6)% 8]<<"---------"<<endl<<endl;

		return 0;
	}
	int FindDayA(int year, int month, int day )		//查找某一天是休息还是上班
	{
		int all;
		char week[8][20]= {
  
  {"工作第一天"},{"工作第二天"},{"工作第三天"},{"工作第四天"},
		{"工作第五天"},{"工作第六天"},{"休息第一天"},{"休息第二天"}};
		all = NowToDay (year, month, day);
		char night[3][20] = {
  
  {"夜班"},{"早班"},{"中班"}};
		cout<<"---------"<<night[((all + 4) / 8) % 3];
		cout<<"A组员工"<<week[(all + 4)% 8]<<"---------"<<endl<<endl;
		return 0;
	}
		int FindDayC(int year, int month, int day )		//查找某一天是休息还是上班
	{
		int all;
		char week[8][20]= {
  
  {"工作第一天"},{"工作第二天"},{"工作第三天"},{"工作第四天"},
		{"工作第五天"},{"工作第六天"},{"休息第一天"},{"休息第二天"}};
		all = NowToDay (year, month, day);
		char night[3][20] = {
  
  {"中班"},{"夜班"},{"早班"}};
		cout<<"---------"<<night[((all) / 8) % 3];
		cout<<"C组员工"<<week[(all )% 8]<<"---------"<<endl<<endl;
		return 0;
	}
			int FindDayD(int year, int month, int day )		//查找某一天是休息还是上班
	{
		int all;
		char week[8][20]= {
  
  {"工作第一天"},{"工作第二天"},{"工作第三天"},{"工作第四天"},
		{"工作第五天"},{"工作第六天"},{"休息第一天"},{"休息第二天"}};
		all = NowToDay (year, month, day);
		char night[3][20] = {
  
  {"早班"},{"中班"},{"夜班"}};
		cout<<"---------"<<night[((all +2) / 8) % 3];
		cout<<"D组员工"<<week[(all+2 )% 8]<<"---------"<<endl<<endl;
		return 0;
	}






};

THE END

发表回复