unionaffiliation.cpp

来自「著名的uncle Bob的Agile software development的」· C++ 代码 · 共 57 行

CPP
57
字号
#include "UnionAffiliation.h"#include "ServiceCharge.h"#include "Date.h"#include "Paycheck.h"UnionAffiliation::~UnionAffiliation(){}UnionAffiliation::UnionAffiliation(int memberId, double dues): itsMemberId(memberId), itsDues(dues){}ServiceCharge* UnionAffiliation::GetServiceCharge(const Date& date){  return itsServiceCharges[date];}void UnionAffiliation::AddServiceCharge(const Date& date, double amount){  ServiceCharge* sc = new ServiceCharge(date, amount);  itsServiceCharges[date] = sc;}namespace{  int NumberOfFridaysInPayPeriod(const Date& payPeriodStart,				 const Date& payPeriodEnd)  {    int fridays = 0;    for (Date day = payPeriodStart; day <= payPeriodEnd; day++) {      if (day.GetDayOfWeek() == Date::friday)	fridays++;    }    return fridays;  }}double UnionAffiliation::CalculateDeductions(Paycheck& pc) const{  double totalServiceCharge = 0;  double totalDues = 0;  map<Date, ServiceCharge*>::const_iterator i;  for (i=itsServiceCharges.begin(); i != itsServiceCharges.end(); i++) {    ServiceCharge* sc = (*i).second;    if (Date::IsBetween(sc->GetDate(), pc.GetPayPeriodStartDate(), pc.GetPayPeriodEndDate()))      totalServiceCharge += sc->GetAmount();  }  int fridays = NumberOfFridaysInPayPeriod(pc.GetPayPeriodStartDate(),					   pc.GetPayPeriodEndDate());  totalDues = itsDues * fridays;  return totalDues + totalServiceCharge;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?