C++:日期操作、复数加减法、求二元一次方程的根

这篇博客介绍了C++中如何进行日期操作,包括复数的加减法以及如何求解二元一次方程的根。通过实例展示了C++在这些数学问题上的应用。
摘要由CSDN通过智能技术生成

日期:

​//判断闰年
bool isLeapYear(int year) { return (year%4 == 0 && year%100 != 0) || year%400 == 0; }
//计算日期从当年1月1日算起的天数
int getDayofYear(const Date date){
    int year=date.year, month=date.month, day=date.day;
    int i, sum=day;
    int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int b[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if (isLeapYear(year))
        for(i=0; i<month; i++)   sum += b[i];
    else
        for(i=0; i<month; i++)   sum += a[i];
    /*
    int c[13] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}
    int d[13] = {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366}
    if (isLeapYear(year))
        sum += d[i];
    else
        sum += c[i];
    */
    return sum;
}
//计算两个日期之间相差的天数
int getDayDiffer(const Date today,const Date anyday){
    int year=today.year, sum=0;
    if(today.year>anyday.year){//today的年份比anyday大
        sum+=getDayofYear(today);//先算出today当前年份的剩余天数
        --year;
        while(year>anyday.year){//中间年份可以直接循环相加
            if(isLeapYear(year)){
                sum+=366;
                --year;
            }
            else{
                sum+=365;
                --year;
            }
        }
        //执行到这一步一定year=anyday.year
        if(isLeapYear(year))//算出anyday.year的那一年还剩多少天
            sum+=366-getDayofYear(anyday);
        else
            sum+=365-getDayofYear(anyday);
    }
    else if(today.year==anyday.year){//两个日期为同一年
        sum+=getDayofYear(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值