算法练习5

devtools/2025/3/18 19:28:09/

今天这道题目主要是通过类来实现的,运用了运算符重载等相关知识。先写一个日期的类,然后根据每月的天数,将给出的n天进行减法,每减一次month++,当month==13时,month=1,year++,当n-当月的天数<0时,说明n为该月的天数,具体代码如下:

#include <iostream>

using namespace std;

class date

{

    public:

    date(int year,int month=1,int day=0)

    {

        _year=year;

        _month=month;

        _day=day;

    }

    date zhuanhuan(int day)

    {

          int arr[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

          //判断闰年

          while(day-arr[_month]>0)

          {

          if(_month==2&&((_year%4==0&&_year%100!=0)||_year%400==0))

          {

            arr[_month]+=1;

            if(day-arr[_month]>0)

            {

            day=day-arr[_month];

            _month++;

            }

          }

          else

        {

            day=day-arr[_month];

            _month++;

        }

          }

          _day=day;

          return *this;

    }

     void Print()

  {

    if(_day<10)

    {

        if(_month<10)

    {

          cout<<_year<<"-"<<0<<_month<<"-"<<0<<_day<<endl;

    }

    else

    {

          cout<<_year<<"-"<<_month<<"-"<<0<<_day<<endl;

    }

    }

    else {

    {

    }

    if(_month<10)

    {

          cout<<_year<<"-"<<0<<_month<<"-"<<_day<<endl;

    }

    else

    {

          cout<<_year<<"-"<<_month<<"-"<<_day<<endl;

    }

    }

  }

    private:

    int _year;

    int _month;

    int _day;

};



 

int main()

{

   

        int year;

        int day;

        cin>>year;

        cin>>day;

        date d1(year);

        d1.zhuanhuan(day);

        d1.Print();

   

    return 0;

}

   


http://www.ppmy.cn/devtools/168136.html

相关文章

冒泡排序:古老算法中的智慧启示

在计算机科学浩瀚的星空中&#xff0c;排序算法犹如璀璨的星辰&#xff0c;而冒泡排序恰似其中最朴实无华的一颗。这个诞生于计算机发展初期的经典算法&#xff0c;以其简单直观的逻辑原理&#xff0c;成为每个程序员启蒙阶段必经的试炼场。当我们凝视这个看似笨拙的排序方法时…

冯 • 诺依曼体系结构

冯 • 诺依曼体系结构 一、冯 • 诺依曼体系结构推导阶段 1&#xff1a;初始计算机体系结构&#xff08;仅输入、运算、输出&#xff09;阶段 2&#xff1a;加入控制功能&#xff0c;初步形成 CPU 概念阶段 3&#xff1a;性能瓶颈与引入内存阶段 4&#xff1a;最终冯诺依曼体系…

AI机器学习---开发工具JupyterLab

JupyterLab‌&#xff1a;JupyterLab是Jupyter项目的下一代交互式计算环境&#xff0c;提供了更加现代和灵活的用户界面。它支持多文档界面&#xff0c;用户可以同时打开和查看多个文档&#xff0c;包括笔记本、文本文件、代码文件等。JupyterLab的界面更加复杂&#xff0c;允许…

Redis--渐进式遍历

目录 一、引言 二、介绍 三、命令 四、总结 一、引言 本篇文章将介绍Redis中的渐进式遍历 二、介绍 一般使用keys * 来获取所有的key&#xff0c;但这样的操作如果数据量很大的时候&#xff0c;会将服务器给卡死&#xff0c;所以通过渐进式遍历&#xff0c;就会避免这个问题…

2024浙江大学计算机考研上机真题

2024浙江大学计算机考研上机真题 2024浙江大学计算机考研复试上机真题 2024浙江大学计算机考研机试真题 2024浙江大学计算机考研复试机试真题 历年浙江大学计算机复试上机真题 历年浙江大学计算机复试机试真题 2024浙江大学计算机复试上机真题 2024浙江大学计算机复试机试真题 …

Android开源库——RxJava和RxAndroid

RxJava和RxAndroid是什么&#xff1f; RxJava是基于JVM的响应式扩展&#xff0c;用于编写异步代码 RxAndroid是关于Android的RxJava绑定 RxJava和RxAndroid使用 依赖 implementation io.reactivex.rxjava3:rxjava:3.1.0 implementation io.reactivex.rxjava3:rxandroid:3.…

android.widget包介绍

android.widget 是 Android 开发中用于构建用户界面&#xff08;UI&#xff09;的核心包之一。它包含了大量的 UI 控件&#xff08;如按钮、文本框、列表等&#xff09;&#xff0c;这些控件通常被称为“小部件”&#xff08;Widget&#xff09;。android.widget 包中的类大多继…

求职招聘网站源码,找工作招工系统,支持H5和各种小程序

招聘找活招工平台系统源码 招聘求职找工作软件 发布信息积分充值招聘系统,里面带纤细教程 功能介绍: 招工小程序主要针对工地招工工人找工作,工地可以发布招工信息,工人可以发布找活信息,招工信息可以置顶,置顶需要积分,积分可以通过签到、分享邀请好友、充值获取,后…