9b5d99078e
[SVN r43422]
60 lines
1.6 KiB
XML
60 lines
1.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
|
"../../../tools/boostbook/dtd/boostbook.dtd">
|
|
|
|
<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
|
|
Subject to the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
-->
|
|
|
|
<section id="date_time.examples.end_of_month_day">
|
|
<title>End of the Months</title>
|
|
|
|
<para>
|
|
Iterates accross the remaining months in a given year, always landing on the last day of the month.
|
|
</para>
|
|
<programlisting>
|
|
<![CDATA[
|
|
/* Simple program that uses the gregorian calendar to find the last
|
|
* day of the month and then display the last day of every month left
|
|
* in the year.
|
|
*/
|
|
|
|
#include "boost/date_time/gregorian/gregorian.hpp"
|
|
#include <iostream>
|
|
|
|
int
|
|
main()
|
|
{
|
|
using namespace boost::gregorian;
|
|
|
|
std::cout << " Enter Year(ex: 2002): ";
|
|
int year, month;
|
|
std::cin >> year;
|
|
std::cout << " Enter Month(1..12): ";
|
|
std::cin >> month;
|
|
try {
|
|
int day = gregorian_calendar::end_of_month_day(year,month);
|
|
date end_of_month(year,month,day);
|
|
|
|
//Iterate thru by months --
|
|
month_iterator mitr(end_of_month,1);
|
|
date start_of_next_year(year+1, Jan, 1);
|
|
//loop thru the days and print each one
|
|
while (mitr < start_of_next_year){
|
|
std::cout << to_simple_string(*mitr) << std::endl;
|
|
++mitr;
|
|
}
|
|
|
|
}
|
|
catch(...) {
|
|
std::cout << "Invalid Date Entered" << std::endl;
|
|
}
|
|
return 0;
|
|
|
|
}
|
|
|
|
]]>
|
|
</programlisting>
|
|
</section>
|