实现日期类

使用MiniExcel.SaveAsByTemplate快速地保存百万数据 该代码展示了如何使用MiniExcel快速生成并导出百万级销售数据。核心方法GenerateLargeData()可生成指定数量的随机销售记录,包含客户名、日期、VIP状态、积分等20个字段。通过随机函数模拟真实数据分布,并支持自定义数据量(默认100万条)。配合Excel模板使用MiniExcel.SaveAsByTemplate()方法,能高效地将大数据量导出为Excel文件,且处理速度极快。代码结构清晰,包含数据生成、随机日期辅助方法和数据模型类,适合需要批量生成测试数据或导出大型报表的场景。 阅读详情

#include
using namespace std;
class Date

{

public:

// 获取某年某月的天数

int GetMonthDay(int year, int month)
{
    int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
        arr[2] = 29;
    return arr[month];
}

// 全缺省的构造函数

Date(int year = 1900, int month = 1, int day = 1)
{
    _year = year;
    _month = month;
    _day = day;
    if (year < 1 || month < 1 || month>12 || day<1 || day>GetMonthDay(year, month))
    {
        cout << "你输入的日期内容不和法,将重置为默认的日期" << "\n";
        _year = 1900;
        _month = 1;
        _day = 1;
    }

}
// 拷贝构造函数

// d2(d1)

Date(const Date& d)
{
    _day = d._day;
    _year = d._year;
    _month = d._month;
}



// 赋值运算符重载

// d2 = d3 -> d2.operator=(&d2, d3)

Date& operator=(const Date& d)
{
    _day = d._day;
    _month = d._month;
    _year = d._year;
    return *this;
}


// 析构函数

~Date()
{

}



// 日期+=天数

Date& operator+=(int day)
{
    if (day < 0)
    {
        *this -= abs(day);
        return *this;
    }
    _day += day;
    while (_day > GetMonthDay(_year,_month))
    {
        _day -= GetMonthDay(_year, _month);
        ++_month;
        if (_month > 12)
        {
            _month = 1;
            _year++;
        }
    }
    return *this;
}



// 日期+天数

Date operator+(int day)
{
    Date d(*this);
    d += day;
    return d;
}



// 日期-天数

Date operator-(int day)
{
    Date d(*this);
    d -= day;
    return d;
}



// 日期-=天数

Date& operator-=(int day)
{
    if (day < 0)
    {
        *this += abs(day);
        return *this;
    }
    _day -= day;
    while (_day <= 0)
    {
        _month--;
        if (_month < 0)
        {
            _year--;
            _month = 12;
        }
       _day += GetMonthDay(_year, _month);
    }
    return *this;
}



// 前置++

Date& operator++()
{
    *this += 1;
    return *this;
}



// 后置++

Date operator++(int)
{
    Date d(*this);
    *this += 1;
    return d;
}



// 后置--

Date operator--(int)
{
    Date d(*this);
    *this -= 1;
    return d;
}



// 前置--

Date& operator--()
{
    *this -= 1;
    return *this;
}

// >运算符重载

bool operator>(const Date& d)
{
    if (_year > d._year)
    {
        return true;
    }
    else if (_year == d._year)
    {
        if (_month > d._month)
        {
            return true;
        }
        else if (_month == d._month)
        {
            if (_day > d._day)
            {
                return true;
            }
            else
                return false;
        }
        else
            return false;
    }
    else
        return false;
}



// ==运算符重载

bool operator==(const Date& d)
{
    return _year == d._year && _month == d._month && _day == d._day;
}



// >=运算符重载

inline bool operator >= (const Date& d)
{
    return *this > d || *this == d;
}



// <运算符重载

bool operator < (const Date& d)
{
    return !(*this >= d);
}
// <=运算符重载
bool operator <= (const Date& d)
{
    return !(*this > d);
}
// !=运算符重载
bool operator != (const Date& d)
{
    return !(*this == d);
}
// 日期-日期 返回天数
int operator-(const Date& d)
{
    int day = 0;
    Date dd(*this);
    int flag = 1;
    if (dd<d)
    {
        flag = 0;
    }
    while (dd!=d)
    {
        if (flag == 1)
        {
            dd--;
        }
        else
            dd++;
        day++;
    }
    return flag==1?day:-day;
}

void printfDate()
{
    cout << _year << "/" << _month << "/" << _day << endl;
}

private:
int _year;
int _month;
int _day;

};

高数15种常见特殊曲线:星形线、心形线、摆线、对数螺线、双曲螺线、阿基米德螺线、伯努利双纽线、三叶玫瑰线、四叶玫瑰线、六叶玫瑰线、三次抛物线、半立方抛物线、箕舌线、蔓叶线、笛卡儿叶形线、概率曲线 4.1 对数螺线(等角螺线、生长螺线)三叶玫瑰线、四叶玫瑰线、六叶玫瑰线。​7.2 半立方抛物线(尼尔曲线)10.笛卡儿叶形线(茉莉花瓣曲线)常考选择题、填空题,大题也涉及。​4.2 双曲螺线(倒数螺线)11.阿基米德螺线(等速螺线)3.摆线(圆滚线、旋轮线)5.双纽线(伯努利双纽线)1.星形线(四尖瓣线)2.心形线(心脏线).................. 阅读详情

相关推荐

【OpenCV】手眼标定实战:从原理到calibrateHandEye的完整实现

本文详细解析了机器人视觉中的手眼标定原理与实战,重点介绍了如何使用OpenCV的calibrateHandEye函数实现从数据采集到结果验证的完整流程。文章深入剖析了AX=XB核心方程,区分了眼在手上与眼在手外两种配置,并提供了详细的代码示例与避坑指南,帮助开发者精准建立相机与机械臂末端的坐标转换关系,是机器人精准抓取的关键技术。

weixin_29046611的博客 508

【c++】实现一个完善的日期类

如果你掌握的一定的c++入门基础,那么你就可以实现一个完善的日期类,以助于更好理解c++类的设计

m0_74044018的博客 269

海康工业相机BayerRG8转BGR8实战:手把手教你用OpenCV实现高效图像转换

本文详细解析了海康工业相机BayerRG8格式到BGR8格式的高效转换实战。针对工业视觉项目中高帧率、大分辨率场景下的性能瓶颈,文章对比了海康SDK原生方案与OpenCV多种转换方法的优劣,并提供了从基础实现到高级优化(如多线程流水线、内存管理、SIMD指令集应用)的完整代码示例与性能调优策略,帮助开发者构建稳定、高效的图像处理系统。

weixin_29237635的博客 524

C++使用class自定义类型——Date

日期-日期,可以转化为:小的日期一直累加到大的天数,就是两个日期相差多少天,这时候就可以复用之前的++重载,要注意确认两个日期谁大谁小,如果第二个日期大于第一个日期,说明最后的结果是负数,flag = -1。+和-的重载只要复用+=和-=的代码就好了,不同的是+和-的返回值是Date的临时拷贝,不会对原本的对象产生影响,而+=和-=的返回值是Date的引用,会对原本对象产生影响。在内置类型中,经常有int a = 3这样的赋值方式,这和拷贝构造是等价的,但是想要和内置类型一样的写法,就需要用到赋值重载。

kamijouzero的博客 847

Cadence SpectreRF仿真避坑指南:PSS和Pnoise设置详解(附实战案例)

本文详细解析了Cadence SpectreRF中PSS(周期稳态分析)和Pnoise(周期噪声分析)的关键设置技巧,帮助模拟IC设计工程师避开常见仿真陷阱。通过实战案例分享,涵盖引擎选择、Beat Frequency计算、噪声类型配置等核心参数优化策略,提升仿真精度与效率。特别针对开关电容电路和振荡器等复杂场景提供专业解决方案。

weixin_42613501的博客 601

【BAAS】基于supabase的知识库详细设计

为满足快速开发需要和减少开发及维护成本,使用BAAS(Backend-as-a-Service)模式可以很好的降低我们的后端维护成本,并提高前端对接效率。一般来说,BAAS是一种云服务模式,BaaS供应商会为提供一些通用的能力,例如用户身份验证、数据库管理、远程更新和推送通知(针对移动应用程序),以及云存储和自托管。BaaS最主流的是Google的firebase,具有相当完善的功能和集成方案,但他是收费的,而且在我们实际项目中,可能需要私有化部署,这时就需要一些开源的替代方案,例如主流的。

Ric的博客 1781

构造一个日期类(MyDate.java),

构造一个日期类(MyDate.java), 要求: 1、包含年、月、日 三个私有属性; 2、提供无参构造方法,提供全部属性的构造方法; 3、在私有属性的Setter和Getter方法的代码修改,保证年份在1-9999年,月为1-12月,日为1-31天。 4、并提供按”yyyy-MM-dd”格式的字符串存取日期的方法;实例化一个该类后,输入一个日期,可以计算出该日期是当年的第几天,要求计算天数的方法由日期类提供,可直接通过该类的实例去调用。 日期类: package Mydate; public class

gaogaosen的博客 6015

无人机WIFI集群组网技术详解及成本分析

无人机WIFI集群组网技术是指利用无人机作为移动平台,通过集成高性能的WIFI模块,实现多架无人机之间以及无人机与地面控制站之间的无线通信组网。在协议层面,无人机WIFI集群组网需要遵循标准的无线通信协议,如IEEE 802.11系列(即WIFI标准),同时可能还需定制或优化路由协议、媒体访问控制(MAC)协议等,以确保高效、可靠的数据传输。数据安全与隐私保护:无人机集群组网中传输的数据可能涉及敏感信息,需采取加密、认证等安全措施,确保数据传输的安全性和用户隐私的保护。根据性能不同,价格差异较大。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1582

Date日期类的实现

首先定义Date类,包含三个成员变量,以及几个默认成员函数。class Datepublic:Date(int year=1,int month=1,int day=1)//实现的默认构造函数,全缺省_day = day;Date(const Date& d)//拷贝构造Date& operator=(Date& d)//赋值运算符重载cout

2401_82677021的博客 883

ue4 角色奔跑/冲刺/蹲下 /蹲走 动作切换蓝图

序列:文章分为4部分: 一、准备工作+简单的蓝图连线 二、编写“行走” 混合空间 三、编写“蹲下”混合空间 四、合成2个动画,设置动画蓝图 —————————————— 一、准备工作 下载“动画初学者包”,添加到项目! 主要文件: 打开BP_playerCharacter,组价——添加组件,找到“摄像机”,“机臂” 没有找到就去其他项目复制过来 ———————————— 手写人物的移动,也可以在...

凉城古梦猫扑街的博客 4862

攻防世界:Crypto习题之easy_RSA

在非对称加密算法中,单向函数被广泛应用,用于确保从公钥加密后的密文无法轻易推导出私钥,从而保证数据的安全性。而其中最著名的算法便是 RSA 加密算法。首先设φm:=∣1≤k≤mgcdkm1∣为欧拉函数(Euler’sche Phi-function)。pqn:=pqpqφnnpqpqφnp−1q−1e∈12...φn−1gcdφne1ended≡1φn假设我们现在有明文x以及公钥en。

qq_52789488的博客 1570

JAVA日期类

日期类 第一代日期类 1.Date类:精确到毫秒,代表特定的瞬间 2.SimpleDateFormat类:格式和解析日期的类 SimpleDateFormat格式化和解析日期的具体类。它允许进行格式化【日期 --> 文本】,解析【文本 --> 日期】和规范化 3.SimpleDateFormat类需要掌握方法【format:格式形式 parse:转换解析【就是将字符串日期格式转成Date类】】 4.一般情况下Date类和SimpleDateFormat类一起搭配使用 Date和

weixin_47267628的博客 6164

基于Simulink的电力电子负载特性模拟仿真实例

电阻性负载是最简单的负载形式,其阻抗为纯电阻,电流和电压之间的关系符合欧姆定律。电阻性负载的特点是消耗能量,不会存储能量。本示例将以一个典型的直流电源供电系统为例,展示如何利用Simulink进行不同负载特性的仿真模拟。直流电源:提供固定电压输入。逆变器(可选):根据需要产生PWM调制信号,驱动负载。负载模块:模拟不同类型的负载特性,如电阻性负载、电感性负载和容性负载。测量模块:用于观察负载上的电压和电流波形。系统架构视图plaintext深色版本v| || |

xiaoheshang_123的博客 429

日期类的实现

通过上面的代码我们可以看出函数是可以互用的,并且代码中灵活的利用this指针与引用d进行比较,得出最后的是否为真。

2301_79178723的博客 1077

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

『C++成长记』日期类的实现

完整实现日期类

小王又困了的博客 3584

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【C++】日期类的实现

日期类接口实现

qq_66314292的博客 2921

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【C++深入浅出】日期类的实现

通过前面两期类和对象的学习,我们已经对C++的类有了一定的了解。本期我们的目标是实现一个完整的日期类,通过实现日期类的构造函数、运算符重载等等内容,加深对前面知识的理解。实现了日期类之后,我们就相当于自己实现了一个网上的日期计算器,如计算几天后的日期,计算日期差。

忆梦初心的博客 1637

【C++】—— 日期类的实现

学了一些类和对象的知识大家是不是感觉云里雾里的今天我们就来一篇轻松一点的内容,来通过之前学过的知识,试写一个日期类,巩固一下之前的知识

2302_78420373的博客 1714

C++:日期类的实现

前面几篇讲了关于类和对象的一些知识,本篇就来实现一下前面用到的日期类。

2401_86551514的博客 2253

日期类代码实现-C++

通过C++代码,实现了一个日期类

h_number_1的博客 1693

【C++】实现日期类

今天呢我们来了解一下用类来实现日期类的计算,用来加强一下我们之前学的类那一块的知识点。包括类和对象以及友元函数等

jhj9201633的博客 1421

C++实现日期类

初步学习了类和对象后,为了能学以致用,我想用类和对象实现一个日期类,能实现日期的一些计算方法! 1.功能 1)日期的大小判断 2)日期变化的日期加减天数 3)计算两个日期间隔天数 4)日期变化的日期加减天数 2.实现代码 我把接口的声明和类的定义放在了Date1.h文件里: #pragma once #include<iostream> using std::cout; using...

Python_programer的博客 536

日期类的基本实现

日期的基本操作:通过构造函数、拷贝构造函数和赋值运算符重载,实现了日期的初始化、拷贝和赋值操作。日期的加减运算:通过重载 +=、+、-=、和 - 运算符,实现了日期与天数的加减运算,以及日期之间的天数差计算。日期的比较运算:通过重载 >、==、>=、<、<= 和!运算符,实现了日期之间的比较操作。输入输出流重载:通过重载输入流 >> 和输出流 <<,实现了日期的输入和输出操作。日期的合法性检查:通过 CheckDate 函数,确保日期的合法性。日期的自增自减操作。

2502_90265864的博客 1091
上一篇: 面向对象(OOP)和类
下一篇: 面向对象(OOP)思想和类(2)
ldbite
博客等级 码龄7年 17粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值