日期类的习题

ops/2024/11/15 0:10:54/

一.求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

求1+2+3+...+n_牛客题霸_牛客网

#include <utility>
class Sum
{
public:
Sum()
{i+=t;t++;
}static int i;static int t;
};
int Sum::i=0;
int Sum::t=1;class Solution
{
public:int Sum_Solution(int n) {Sum*p=new Sum[n];delete []p ;return Sum::i;}};

二.日期差值

日期差值_牛客题霸_牛客网/activity/oj&qru=/ta/sju-kaoyan/question-ranking

#include <climits>
#include <iostream>
using namespace std;
class Date 
{
friend ostream& operator<<(ostream& out, const Date& d);
friend Date GetDate(int n);private:int _year;int _month;int _day;public:int GetMonthDay(int year,int month){static int GetMonth[13]={-1,31,28,31,30,31,30,31,31,30,31,30,31};if(_month==2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){return 29;}else {return GetMonth[month];}}int operator-(const Date& d) const;Date& operator++();bool operator<(const Date& d) const;bool operator==(const Date& d) const;bool operator!=(const Date& d) const;Date& operator+=(int day);
};
bool Date::operator<(const Date& d) const{if (_year < d._year)return true;else if (_year == d._year && _month < d._month)return true;else if (_year == d._year && _month == d._month && _day < d._day)return true;return false;
}Date& Date::operator+=(int day)
{_day += day;while (_day > GetMonthDay(_year, _month)){_day -= GetMonthDay(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;
}
Date& Date::operator++()
{*this+=1;return *this;
}
bool Date::operator==(const Date& d) const
{return _year == d._year && _month == d._month && _day == d._day;
}
bool Date::operator!=(const Date& d) const
{return !(*this==d);
}int Date::operator-(const Date& d) const
{int n = 0;Date max = *this;Date min = d;if (*this < d){min = *this;max = d;}while (min != max){++min;n++;}return n;
}
Date GetDate(int n)
{Date a;a._year=n/10000;a._month=(n - a._year * 10000) / 100;a._day=n%100;return a;
}int main()
{int n1,n2;Date d1;Date d2;cin>>n1>>n2;d1=GetDate(n1);d2=GetDate(n2);cout<<d1-d2+1<<endl;
}

三.计算一年的第几天

计算日期到天数转换_牛客题霸_牛客网

#include <ctime>
#include <iostream>
using namespace std;
class Date
{
friend ostream& operator<<(ostream& out, const Date& d);
friend istream& operator>>(istream& in, Date& d);
public:private:int _year;int _day;int _month;
};int GetMonthDay(int year, int month){static int monthDay[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };if (month == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){return 29;}else{return monthDay[month];}}
ostream& operator<<(ostream& out, const Date& d)
{int n=0;for(int i= d._month;i>1;i--){n+=GetMonthDay(d._year,i);}n+=d._day;out<< n <<endl;return out;
}
istream& operator>>(istream& in, Date& d)
{	in >>  d._year >>  d._month >> d._day;return in;
}
int main()
{Date a;cin>>a;cout<<a;
}

四.累加天数

日期累加_牛客题霸_牛客网

#include <climits>
#include <iostream>
using namespace std;
class Date
{friend ostream& operator<<(ostream& out, const Date& d);friend Date Getmonth(int year,int month,int day);
private:int _year;int _month;int _day;
public:int GetMonthDay(int year, int month){static int GetMonth[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };if (_month == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){return 29;}else{return GetMonth[month];}}Date& operator+=(int day);Date operator+(int day);};Date& Date::operator+=(int day)
{_day += day;while (_day > GetMonthDay(_year, _month)){_day -= GetMonthDay(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;
}Date Date::operator+(int day)
{Date tmp=*this;tmp+=day;return tmp;}
ostream& operator<<(ostream& out,  const Date& d)
{if(d._month<10 && d._day<10){out<<d._year<<"-"<<0<<d._month<<"-"<<0<<d._day;}else if (d._month<10 && d._day>10){out<<d._year<<"-"<<0<<d._month<<"-"<<d._day;}else if(d._month>=10 && d._day<10){out<<d._year<<"-"<<d._month<<"-"<<0<<d._day;}elseout<<d._year<<"-"<<d._month<<"-"<<d._day;return out;
}Date Getmonth(int year,int month,int day)
{Date b;b._year=year;b._month=month;b._day=day;return b;
}int main()
{int m,year,day,month,t;cin>>m;while(m--){cin>>year>>month>>day>>t;Date a;a=Getmonth(year,month,day);cout<<a+t<<endl;}}

五.打印日期

打印日期_牛客题霸_牛客网

#include <iostream>
using namespace std;
class Date 
{   friend ostream& operator<<(ostream& out, const Date& d);friend  Date Getday(int year,int num);private:int _year;int _month;int _day;public:  
};int GetMonthDay(int year, int month){static int GetMonth[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))){return 29;}else{return GetMonth[month];}} ostream& operator<<(ostream& out, const Date& d){if(d._month<10 && d._day<10)out<<d._year<<"-"<<0<<d._month<<"-"<<0<<d._day<<endl;else if(d._month<10 && d._day>=10){out<<d._year<<"-"<<0<<d._month<<"-"<<d._day<<endl;}else if(d._month>10 && d._day<10){out<<d._year<<"-"<<d._month<<"-"<<0<<d._day<<endl;}else{out<<d._year<<"-"<<d._month<<"-"<<d._day<<endl;}return out;}Date Getday(int year,int num){int month=1;for(int i=1;i<=12;i++){if(num<=GetMonthDay(year,i)){break;}else {num-=GetMonthDay(year,i);month++;if(month==13){year++;month=1;}}}Date a;a._year=year;a._month=month;a._day=num;return a;}
int main()
{int year,num;while((cin>>year>>num)){Date d;d=Getday(year,num);cout<<d;}
}

http://www.ppmy.cn/ops/89521.html

相关文章

繁简之争:为什么手机芯片都是 ARM

RISC 和 CISC 指令集 之前的文章《揭秘 CPU 是如何执行计算机指令的》中说到&#xff0c;如果从软件的角度来讲&#xff0c;CPU 就是一个执行各种计算机指令&#xff08;Instruction Code&#xff09;的逻辑机器。 计算机指令集是计算机指令的集合&#xff0c;包括各种类型的…

electron-builder打包vue2项目问题合集

一、打包之后不显示elecmentui的图标 1、使用版本 vue ^2.6.14element-ui ^2.15.14vue-cli-plugin-electron-builder 2.1.1 2、解决办法 1&#xff09; 如果是简单的图标可以使用图片代替&#xff08;这种对于elementui组件的图标还是不会显示&#xff09; 2&#xff09;在v…

【人工智能】NLP入门指南:自然语言处理基础全解析

文章目录 前言一、NLPNLP&#xff08;自然语言处理&#xff09;NLU&#xff08;自然语言理解&#xff09;NLG&#xff08;自然语言生成&#xff09; 二、分词1.什么是分词2.常见的分词工具3.jieba分词 三、词向量1.什么是词向量2.文本张量表示方法3.常见的词向量模型3.1 ont-ho…

什么情况?我代码没了

前两天检视代码时&#xff0c;发现PR里面有两个提交的描述信息一模一样&#xff0c;于是我提出应该将这两个提交合并成一个&#xff0c;保持提交树的清晰。 1 先储存起来&#xff01; 而同事这时正在开发别的特性&#xff0c;工作区不是干净的&#xff0c;没法直接执行 git r…

k8s核心知识总结

写在前面 时间一下子到了7月份尾&#xff1b;整个7月份都乱糟糟的&#xff0c;不管怎么样&#xff0c;日子还是得过啊&#xff0c; 1、7月份核心了解个关于k8s&#xff0c;iceberg等相关技术&#xff0c;了解了相关的基础逻辑&#xff0c;虽然和数开主线有点偏&#xff0c;但是…

【机器学习】正则化的基本概念以及正则化成本和梯度的示例

引言 在机器学习中&#xff0c;正则化&#xff08;Regularization&#xff09;是一种技术&#xff0c;用于减少模型复杂度&#xff0c;防止过拟合&#xff0c;并提高模型的泛化能力。通过在损失函数中添加一个额外的惩罚项&#xff0c;正则化鼓励模型学习更简单、更平滑的函数&…

如何将PyCharm 中使用 PDM 管理的 Django 项目迁移到 VS Code 并确保一切正常工作?

嗨&#xff0c;我是兰若姐姐&#xff0c;相信很多小伙伴都遇到过这种情况&#xff0c;使用pycharm用习惯了&#xff0c;想换个编辑器&#xff0c;比如换成vscode&#xff0c;今天就告诉大家&#xff0c;如果轻松切换到vscode 步骤 1&#xff1a;在 VS Code 中打开项目 打开 V…

【C++标准模版库】list的介绍及使用

list 一.list的介绍二.list的使用1.list 构造函数2.list 空间大小3.list 增删查改4.list 迭代器的使用1.正向迭代器2.反向迭代器 5.list 其他成员函数 三.vector与list关于sort性能的比较 一.list的介绍 C中的list标准模板库&#xff08;STL&#xff09;是C标准库中的一个重要组…