前天是哪天

I-前天是哪天_岭南师范学院2025年蓝桥杯选拔赛报名赛暨资格赛 (nowcoder.com)

主要用到了c++ <ctime>的函数和结构 解题要先将字符串转化为输入流 用tm结构接收 然后转换为time_t结构 便于时间的相加减 之后转化为字符串输出流 输出返回结果

#include <iostream>
#include <iomanip>
#include <ctime>
#include <sstream>
#include <string>
using namespace std;

//定义一个时间相减的函数
string subtract_days(string &input_date,int days){
    //创建一个tm结构
    tm tm_date = {};
    //将传入的字符串转换为输入流
    istringstream iss(input_date);
    //获取时间 为Y-M-D的结构表示时间的结构是这样子的
    iss >> get_time(&tm_date, "%Y-%y-%d");

    //将tm结构转化为time_t结构(用秒表示)
    time_t time_date = mktime(&tm_date);
    //减去时间
    time_date -= 2 * 24 * 60 * 60;
    //将time_t转换为tm结构
    tm_date = *localtime(&time_date);
    //将tm结构转换为string输出流
    ostringstream oss;
    //转化为string输出流
    oss << put_time(&tm_date,"%Y-%y-%d");

    return oss.str();  //返回string流


}
//2020-11-15

int main() {
        //注意 字符串输入 遇到空格就停止 
    string input_date;  //这是输入的时间
    cin >> input_date;

    string output_date = subtract_days(input_date,2);
    cout << output_date << endl;

    return 0;
}

输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值