//code.h
#include "stdafx.h"
#include "test.h"
#include "io.h"
int process()
{
USER_T
theKind;
/* 电表用户的类型
*/
USE_TIME_t
start_Time;
/* 开始使用时间
*/
WEEK_T start_Week; /* 开始使用时间是星期几
*/
USE_TIME_t
end_Time;
/* 结束使用时间
*/
int
value;
/* 用电量 */
double fare;
double averageOfValue;
USE_TIME_t temp_time;
int numberOfWorkdays=0;
int numberOfHolidays=0;
int ret;
int fare_int;
ret = Input(&theKind,&start_Time,&start_Week,&end_Time,&value);
temp_time = start_Time;
if(!ret)
{
if(theKind==USER_COMMON){
if(start_Time.month>=5&&start_Time.month<=10){
if(value>=0&&value<=260){
fare=(double)value*0.68;
}
else if(value>=261&&value<=600){
fare=(double)value*(0.68+0.05);
}
else if(value>=601){
fare=(double)value*(0.68+0.3);
}
}
else {
if(value>=0&&value<=200){
fare=(double)value*0.68;
}
else if(value>=201&&value<=400){
fare=(double)value*(0.68+0.05);
}
else if(value>=401){
fare=(double)value*(0.68+0.3);
}
}
}
else if(theKind==USER_TIME_DIV)
{
while(1)
{
if(temp_time.date==end_Time.date&&temp_time.month==end_Time.month&&temp_time.year==end_Time.year)
{
if(start_Week==SATURDAY||start_Week==SUNDAY||IsInHoliday_ALL(temp_time))
{
numberOfHolidays++;
}
else{
numberOfWorkdays++;
}
break;
}
if(start_Week==SATURDAY||start_Week==SUNDAY||IsInHoliday_ALL(temp_time))
{
numberOfHolidays++;
}
else{
numberOfWorkdays++;
}
if(temp_time.month==1||temp_time.month==3||temp_time.month==5||temp_time.month==7||temp_time.month==8||temp_time.month==10||temp_time.month==12)
{
if(temp_time.date==31)
{
temp_time.month+=1;
temp_time.date=1;
}
else{
temp_time.date+=1;
}
}
else if(temp_time.month==4||temp_time.month==6||temp_time.month==9||temp_time.month==11)
{
if(temp_time.date==30)
{
temp_time.month+=1;
temp_time.date=1;
}else{
temp_time.date+=1;
}
}else{
if(temp_time.date==28)
{
temp_time.month+=1;
temp_time.date=1;
}
else{
temp_time.date+=1;
}
}
switch(start_Week){
case MONDAY:
start_Week=TUESDAY;
break;
case TUESDAY:
start_Week=WEDNESDAY;
break;
case WEDNESDAY:
start_Week=THURSDAY;
break;
case THURSDAY:
start_Week=FRIDAY;
break;
case FRIDAY:
start_Week=SATURDAY;
break;
case SATURDAY:
start_Week=SUNDAY;
break;
case SUNDAY:
start_Week=MONDAY;
break;
}
}
averageOfValue=(double)value/(numberOfWorkdays + numberOfHolidays);
fare=0.75*numberOfWorkdays*averageOfValue+0.98*numberOfHolidays*averageOfValue;
}
fare_int=(int)(fare+0.5);
Output(fare_int);
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
process();
return 0;
}