c++ chrono 获取当前时间的实现代码

 更新时间:2023年07月07日 08:59:50   作者:MeepoB  
这篇文章主要介绍了c++ chrono 获取当前时间的实现代码,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

c++ chrono 获取当前时间

#include <chrono>
#include <iostream>
#include <format>
namespace chrono = std::chrono;
    void showCurrentMonth() {
        // 获取当前时间
        chrono::time_point now{ chrono::system_clock::now() };
        // 将时间转换为year_month_day
        chrono::year_month_day ymd{ chrono::floor<chrono::days>(now) };
        // 获取当前年月(类型为year_month)
        chrono::year_month currentYearMonth = ymd.year() / ymd.month();
    }
    // 获取当月第一天
    const auto firstDay = yearMonth / 1d;
    // 获取当月最后一天
    const auto lastDay = chrono::year_month_day(yearMonth / chrono::last);
    // 输出格式化的标题(年份与月份)
    std::string titleLine = std::format("** {:%Y-%m} **", yearMonth);
    // 输出日历表头(从周一到周日)
    std::vector<std::string> headerLineParts;
    for (const auto& weekday : Weekdays) {
        headerLineParts.push_back(std::format(ZhCNLocale, "{:L%a}", weekday));
    }
   // 通过weekday获取某一天是周几            
    auto currentWeekday = chrono::weekday{ std::chrono::sys_days{ currentDay } };            
    // 通过iso_encoding获取周几的编码(1-7)            
    auto currentWeekdayIndex = currentWeekday.iso_encoding() - 1;             
    // 计算本周第一天            
    auto firstDayOfWeek = chrono::year_month_day{ std::chrono::sys_days{ currentDay } - chrono::days(currentWeekdayIndex) }; 

C++标准库用chrono获取时间

C++有2种常用的获取当前时间的方式。本次主要围绕chrono展开。我的需求是,获取当前时间,并且打印到屏幕上。然后我就使用了这个system_clock::now()

错误示范
#include <iostream>
#include <chrono>
using namespace std;
int main(){
    auto start = std::chrono::system_clock::now();
    cout<<"today is"<<start<<endl;
}

使用上面这段代码并不行!因为start没有重载<<运算符。打印需要结合其他工具。如下:

#include <iostream>
#include <chrono>
using namespace std;
int main(){
    auto start = std::chrono::system_clock::now();
    std::time_t tt;
    tt=std::chrono::system_clock::to_time_t(start);
    string t=ctime(&tt);
    cout<<"today is"<<t<<endl;
}

到此这篇关于c++ chrono 获取当前时间的文章就介绍到这了,更多相关c++ chrono 获取当前时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++中Boost的智能指针scoped_ptr

    C++中Boost的智能指针scoped_ptr

    这篇文章介绍了C++中Boost的智能指针scoped_ptr,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 基于QT的TCP通信服务的实现

    基于QT的TCP通信服务的实现

    在项目开发过程中,很多地方都会用到TCP通信,本文主要介绍了基于QT的TCP通信服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C语言中宏和函数的9个区别详解

    C语言中宏和函数的9个区别详解

    C语言中的宏和函数是非常相似的,它们都可以完成类似的功能。本文为大家整理了C语言中宏和函数的9个区别,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-04-04
  • C++编程模板匹配超详细的识别手写数字实现示例

    C++编程模板匹配超详细的识别手写数字实现示例

    大家好!本篇文章是关于手写数字识别的,接下来我将在这里记录我的手写数字识别的从零到有,我在这里把我自己的写代码过程发出来,希望能帮到和我一样努力求知的人
    2021-10-10
  • C++ 情怀游戏扫雷的实现流程详解

    C++ 情怀游戏扫雷的实现流程详解

    扫雷是电脑上很经典很经典的传统老游戏,从小编第一次摸到计算机开始就玩过扫雷,虽然当时并不理解玩法原理,但终是第一次玩电脑游戏,下面来从扫雷的前世今生讲起
    2021-11-11
  • C语言动态内存分配图文讲解

    C语言动态内存分配图文讲解

    给数组分配多大的空间?你是否和初学C时的我一样,有过这样的疑问。这一期就来聊一聊动态内存的分配,读完这篇文章,你可能对内存的分配有一个更好的理解
    2023-01-01
  • 约瑟夫经典问题扩展成双向约瑟夫问题

    约瑟夫经典问题扩展成双向约瑟夫问题

    今天小编就为大家分享一篇关于约瑟夫经典问题扩展成双向约瑟夫问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • C++ LeetCode1769移动所有球到每个盒子最小操作数示例

    C++ LeetCode1769移动所有球到每个盒子最小操作数示例

    这篇文章主要为大家介绍了C++ LeetCode1769移动所有球到每个盒子所需最小操作数示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Dev C++编译时运行报错source file not compile问题

    Dev C++编译时运行报错source file not compile问题

    这篇文章主要介绍了Dev C++编译时运行报错source file not compile问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 在C++中高效使用和处理Json格式数据的示例代码

    在C++中高效使用和处理Json格式数据的示例代码

    最近的项目在用c处理后台的数据时,因为好多外部接口都在使用Json格式作为返回的数据结构和数据描述,如何在c中高效使用和处理Json格式的数据就成为了必须要解决的问题,需要的朋友可以参考下
    2023-11-11

最新评论