Exemple #1
0
/// <summary>Adds years to the specified date.</summary>
///
/// <returns>The incremented date.</returns>
///
/// <remarks>The years could be negative. A day of February 29 is changed to
/// February 28 to be sure there is no leap-year problem.</remarks>
///
/// <param name="theDate">The date to add to.</param>
/// <param name="years">The number of years to add.</param>
boost::gregorian::date Date::addYears( boost::gregorian::date theDate,
 int years )
{
   const unsigned short month = theDate.month();
   const unsigned short day = theDate.day();
   const unsigned short day1 = (month == boost::date_time::Feb && day == 29) ?
      28 : day;
   return boost::gregorian::date(
      static_cast<unsigned short>(theDate.year() + years), month, day1);
}
		void CalendarDateInterfacePage::Display(
			std::ostream& stream,
			boost::shared_ptr<const Webpage> page,
			const server::Request& request,
			const util::ParametersMap& templateParametersMap,
			boost::gregorian::date value,
			bool isActive
		){
			ParametersMap pm(templateParametersMap);

			pm.insert(DATA_DAY, value.day());
			pm.insert(DATA_MONTH, value.month());
			pm.insert(DATA_YEAR, value.year());
			pm.insert(DATA_WEEK_DAY, value.day_of_week());
			pm.insert(DATA_IS_ACTIVE, isActive);

			page->display(stream, request, pm);
		}
bool SqliteObject::deleteDay(const boost::gregorian::date &d) 
{

  //std::cout << boost::gregorian::to_simple_string(d) << std::endl;

  boost::gregorian::greg_day gd = d.day();
  std::stringstream ssd;
  ssd << gd.as_number();
  std::string d_day = ssd.str();

  boost::gregorian::greg_month gm = d.month();
  std::stringstream ssm;
  ssm << gm.as_number();
  std::string d_month = ssm.str();

  //std::cout << " " << d_month << " " << d_day << std::endl;

  // What are the timeindex values to delete
  std::stringstream cmd1;
  cmd1 << "select TimeIndex from Time where month=" << d_month << " and day=" << d_day;
  execute(cmd1.str());

  std::vector<int> time_index(0);
  for(size_t r=0; r<m_results->data.size(); ++r){
    time_index.push_back(atoi(m_results->data[r][0].c_str()));
  }

  // What are the ReportExtendedData records associated with the timeindex values from ReportData to delete
  std::stringstream cmd3;
  std::vector<int> RVEDV_index(0);
  for(size_t s=0; s<time_index.size(); ++s){
    cmd3 << "select ReportExtendedDataIndex from reportExtendedData inner join reportData on reportExtendedData.ReportDataIndex=reportData.ReportDataIndex where reportData.timeindex =" << time_index[s];
    execute(cmd3.str());
    cmd3.str(std::string());  //clear out the string

    for(size_t r=0; r<m_results->data.size(); ++r){
      RVEDV_index.push_back(atoi(m_results->data[r][0].c_str()));
    }
  }


  execute("begin");

  std::stringstream cmd2;
  // reportData
  for(size_t r=0; r<time_index.size(); ++r){
    cmd2.str(std::string());  //clear out the string
    cmd2 << "delete from reportData where TimeIndex = " << time_index[r];
    execute(cmd2.str());
    //std::cout << cmd2.str() << std::endl;
    //print();
  }
  // reportExtendedData
  for(size_t r=0; r<RVEDV_index.size(); ++r){
    //std::stringstream cmd2;
    cmd2.str(std::string());  //clear out the string
    cmd2 << "delete from reportExtendedData where ReportExtendedDataIndex = " << RVEDV_index[r];
    execute(cmd2.str());
    //std::cout << cmd2.str() << std::endl;
    //print();
  }

  // Time
  for(size_t r=0; r<time_index.size(); ++r){
    //std::stringstream cmd2;
    cmd2.str(std::string());  //clear out the string
    cmd2 << "delete from Time where TimeIndex = " << time_index[r];
    execute(cmd2.str());
    //std::cout << cmd2.str() << std::endl;
    //print();
  }

  execute("commit");

  return true;
}