Files
clients/MorphereAnalyzer/ymorpherethread.cpp
admin d28d4ae562 filter와 같이 웹에 파라미터 업로드 하는 작업 구현
2depth 구현
파라미터 입력방식 변경


git-svn-id: svn://192.168.0.12/source@172 8346c931-da38-4b9b-9d4c-e48b93cbd075
2015-08-12 02:17:11 +00:00

118 lines
2.8 KiB
C++

#include "ymorpherethread.h"
#include <QDate>
void YMorphereThread::setParam(QMap<QString, QString> mapParam)
{
m_mapParam = mapParam;
parseParam();
}
void YMorphereThread::setMutex(QMutex *mutex)
{
this->mutex = mutex;
}
void YMorphereThread::setID(int nID)
{
}
void YMorphereThread::setDataAlgorithmInterface(DataAlgorithmInterface* DAInterface)
{
m_pDAInterface = DAInterface;
}
void YMorphereThread::setMemory(QMap <QString, int> *threadMap)
{
m_pmapResult = threadMap;
}
QMap<QString, int> YMorphereThread::getResult()
{
return m_mapResult;
}
void YMorphereThread::clearpResult()
{
m_pmapResult->clear();
}
void YMorphereThread::clearResult()
{
m_mapResult.clear();
}
QString YMorphereThread::getWeeksInMonth(unsigned int _nDate)
{
QDate qToday(_nDate/10000, (_nDate/100)%100, _nDate%100);
if(!qToday.isValid())
return "inVaildDate";
QDate qTodayFirstDay = QDate(qToday.year(), qToday.month(), 1);
QDate qTodayLastDay = QDate(qToday.year(), qToday.month(), qToday.daysInMonth());
int thisFirstDayofWeek = qTodayFirstDay.dayOfWeek();
int thisLastDayofWeek = qTodayLastDay.dayOfWeek();
int thisLastDay = qTodayLastDay.daysInMonth();
int week = 0;
int firstWeekDays = (WEEK - thisFirstDayofWeek) + 1;
QString strWeek = "W";
if(thisFirstDayofWeek < FRIDAY)
{
week = 1;
}
else
{
week = 0;
}
if((firstWeekDays < qToday.day()) && (qToday.day() <= (thisLastDay - thisLastDayofWeek)))
{
week = week + ((qToday.day() - firstWeekDays + WEEK - 1)/WEEK);
}
else if((firstWeekDays >= qToday.day()))
{
if(thisFirstDayofWeek >= FRIDAY)
{
const int DAYS_IN_WEEK = 7;
qToday = qToday.addMonths(-1);
int DaysInMonth = qToday.daysInMonth();
QDate FirstDayOfMonth = qToday;
FirstDayOfMonth.setDate(qToday.year(), qToday.month(), 1);
int WeekCount = DaysInMonth / DAYS_IN_WEEK;
int DaysLeft = DaysInMonth % DAYS_IN_WEEK;
if (DaysLeft > 0) {
WeekCount++;
// Check if the remaining days are split on two weeks
if (FirstDayOfMonth.dayOfWeek() + DaysLeft - 1 > DAYS_IN_WEEK)
WeekCount++;
}
week = WeekCount;
}
}
else
{
if(thisLastDayofWeek < THURSDAY)
{
week = 1;
qToday = qToday.addMonths(1);
}
else
{
week = week + ((qToday.day() - firstWeekDays + WEEK - 1)/WEEK);
}
}
strWeek += qToday.toString("yyyyMM");
strWeek += QString::number(week);
return strWeek;
}