mirror of
https://github.com/HowardHinnant/date.git
synced 2025-08-06 14:14:27 +02:00
Updated Boost datetime Examples Translated (markdown)
@@ -72,47 +72,38 @@ main()
|
|||||||
```
|
```
|
||||||
<a name="Days_Alive"></a>
|
<a name="Days_Alive"></a>
|
||||||
### Days Alive
|
### Days Alive
|
||||||
|
```c++
|
||||||
|
#include "tz.h"
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
#include "date.h"
|
int
|
||||||
#include "tz.h"
|
main()
|
||||||
#include <iostream>
|
{
|
||||||
#include <sstream>
|
std::string s;
|
||||||
|
std::cout << "Enter birth day YYYY-MM-DD (eg: 2002-02-01): ";
|
||||||
int
|
try
|
||||||
main()
|
|
||||||
{
|
{
|
||||||
std::string s;
|
using namespace std::chrono;
|
||||||
std::cout << "Enter birth day YYYY-MM-DD (eg: 2002-02-01): ";
|
using namespace date;
|
||||||
std::cin >> s;
|
std::cin.exceptions(std::ios::failbit);
|
||||||
try
|
local_days d;
|
||||||
{
|
std::cin >> parse("%F", d);
|
||||||
using namespace std::chrono;
|
auto today = make_zoned(current_zone(), system_clock::now());
|
||||||
using namespace date;
|
auto days_alive = floor<days>(today.get_local_time() - d);
|
||||||
std::istringstream in(s);
|
if (days_alive == days{1})
|
||||||
in.exceptions(std::ios::failbit);
|
std::cout << "Born yesterday, very funny\n";
|
||||||
int y, m, day;
|
else if (days_alive < days{0})
|
||||||
char dash;
|
std::cout << "Not born yet, hmm: " << days_alive.count()
|
||||||
in >> y >> dash >> m >> dash >> day;
|
<< " days\n";
|
||||||
auto d = year(y)/m/day;
|
else
|
||||||
if (!d.ok())
|
std::cout << "Days alive: " << days_alive.count() << '\n';
|
||||||
throw std::exception{};
|
|
||||||
auto birthday = local_days{d};
|
|
||||||
auto today = floor<days>(current_zone()->to_local(system_clock::now()));
|
|
||||||
auto days_alive = today - birthday;
|
|
||||||
if (days_alive == days{1})
|
|
||||||
std::cout << "Born yesterday, very funny\n";
|
|
||||||
else if (days_alive < days{0})
|
|
||||||
std::cout << "Not born yet, hmm: " << days_alive.count()
|
|
||||||
<< " days\n";
|
|
||||||
else
|
|
||||||
std::cout << "Days alive: " << days_alive.count() << '\n';
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
std::cout << "Bad date entered: " << s << '\n';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
std::cout << "Bad date entered\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
<a name="Days_Between_New_Years"></a>
|
<a name="Days_Between_New_Years"></a>
|
||||||
### Days Between New Years
|
### Days Between New Years
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user