computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.7 KiB
90 lines
2.7 KiB
# C++ Date Time |
|
|
|
In C++, you can work with dates and times using the `chrono` library, which is part of the Standard Library (STL). The `chrono` library provides various data types and functions to represent and manipulate time durations, time points, and clocks. |
|
|
|
## Duration |
|
|
|
A `duration` represents a span of time, which can be expressed in various units such as seconds, minutes, hours, etc. To create a duration, use the `std::chrono::duration` template class. Common predefined duration types are: |
|
|
|
- `std::chrono::seconds` |
|
- `std::chrono::minutes` |
|
- `std::chrono::hours` |
|
|
|
**Example:** |
|
|
|
```cpp |
|
#include <iostream> |
|
#include <chrono> |
|
|
|
int main() { |
|
std::chrono::seconds sec(5); |
|
std::chrono::minutes min(2); |
|
std::chrono::hours hr(1); |
|
return 0; |
|
} |
|
``` |
|
|
|
## Time Point |
|
|
|
A `time_point` represents a specific point in time. It is usually created using a combination of duration and a clock. In C++, there are three clock types provided by the `chrono` library: |
|
|
|
- `std::chrono::system_clock`: Represents the system-wide real time wall clock. |
|
- `std::chrono::steady_clock`: Represents a monotonic clock that is guaranteed to never be adjusted. |
|
- `std::chrono::high_resolution_clock`: Represents the clock with the shortest tick period. |
|
|
|
**Example:** |
|
|
|
```cpp |
|
#include <iostream> |
|
#include <chrono> |
|
|
|
int main() { |
|
std::chrono::system_clock::time_point tp = std::chrono::system_clock::now(); |
|
return 0; |
|
} |
|
``` |
|
|
|
## Clock |
|
|
|
A clock provides access to the current time. It consists of the following elements: |
|
|
|
- `time_point`: A specific point in time. |
|
- `duration`: The time duration between two time points. |
|
- `now()`: A static function that returns the current time point. |
|
|
|
**Example:** |
|
|
|
```cpp |
|
#include <iostream> |
|
#include <chrono> |
|
|
|
int main() { |
|
// Get the current time_point using system_clock |
|
std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); |
|
|
|
// Get the time_point 1 hour from now |
|
std::chrono::system_clock::time_point one_hour_from_now = now + std::chrono::hours(1); |
|
return 0; |
|
} |
|
``` |
|
|
|
## Converting Time Points to Calendar Time |
|
|
|
To convert a time point to calendar representation, you can use the `std::chrono::system_clock::to_time_t` function. |
|
|
|
**Example:** |
|
|
|
```cpp |
|
#include <iostream> |
|
#include <chrono> |
|
#include <ctime> |
|
|
|
int main() { |
|
std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); |
|
std::time_t now_c = std::chrono::system_clock::to_time_t(now); |
|
std::cout << "Current time: " << std::ctime(&now_c) << std::endl; |
|
return 0; |
|
} |
|
``` |
|
|
|
This summarizes the basic functionality of working with date and time in C++ using the `chrono` library. You can find more advanced features, such as casting durations and time arithmetic, in the [C++ reference](https://en.cppreference.com/w/cpp/chrono).
|
|
|