Files
cpp/include/tmDateMap.h
2021-03-16 09:30:56 +01:00

203 lines
4.9 KiB
C++

///
/// \file tmDateMap.h
/// \author Jan Chrin, PSI
/// \date Release: August 2018
/// \version CAFE 1.7.0
///
#ifndef TMDATEMAP_H
#define TMDATEMAP_H
#include <string>
#include <map>
enum TM_WDAY
{
TM_SUNDAY = 0,
TM_MONDAY = 1,
TM_TUESDAY = 2,
TM_WEDNESDAY=3,
TM_THURSDAY =4,
TM_FRIDAY =5,
TM_SATURDAY =6
};
enum TM_MONTHP
{
TM_JAN = 1,
TM_FEB = 2,
TM_MAR = 3,
TM_APR = 4,
TM_MAY = 5,
TM_JUN = 6,
TM_JUL = 7,
TM_AUG = 8,
TM_SEP = 9,
TM_OCT =10,
TM_NOV =11,
TM_DEC =12
};
/**
* Provides methods to convert between
* the TM_WDAY and text equivalent
*/
class TMwdayText
{
typedef std::map<int, std::string> mapLongString;
private:
mapLongString mapDataType;
mapLongString::iterator pos;
public:
TMwdayText()
{
mapDataType.insert(std::make_pair((int) TM_SUNDAY, "Sun" ));
mapDataType.insert(std::make_pair((int) TM_MONDAY, "Mon" ));
mapDataType.insert(std::make_pair((int) TM_TUESDAY, "Tue" ));
mapDataType.insert(std::make_pair((int) TM_WEDNESDAY, "Wed" ));
mapDataType.insert(std::make_pair((int) TM_THURSDAY, "Thu" ));
mapDataType.insert(std::make_pair((int) TM_FRIDAY, "Fri" ));
mapDataType.insert(std::make_pair((int) TM_SATURDAY, "Sat" ));
};
~TMwdayText() {};
std::string message (int i)
{
pos = mapDataType.find(i);
if (pos != mapDataType.end()) return pos->second;
return "Day Unknown";
};
std::string asString (int i)
{
pos = mapDataType.find(i);
if (pos != mapDataType.end()) return pos->second;
return "Day Unknown";
};
int enumIs (std::string message)
{
for (pos=mapDataType.begin(); pos != mapDataType.end(); ++pos)
if (pos->second==message) return pos->first;
return -1;
};
int asEnum (std::string message)
{
for (pos=mapDataType.begin(); pos != mapDataType.end(); ++pos)
if (pos->second==message) return pos->first;
return -1;
};
void show()
{
print();
}
void print ( )
{
std::cout << "------------------" << std::endl;
std::cout << "TM_WDAY LIST" << std::endl;
std::cout << "------------------" << std::endl;
for (pos=mapDataType.begin(); pos != mapDataType.end(); ++pos)
{
std::cout << pos->first << " " << pos->second << std::endl;
}
std::cout << "-----------------" << std::endl;
};
};
/**
* Provides methods to convert between
* the TM_WDAY and text equivalent
*/
class TMmonthpText
{
typedef std::map<int, std::string> mapLongString;
private:
mapLongString mapDataType;
mapLongString::iterator pos;
public:
TMmonthpText()
{
mapDataType.insert(std::make_pair((int) TM_JAN, "Jan" ));
mapDataType.insert(std::make_pair((int) TM_FEB, "Feb" ));
mapDataType.insert(std::make_pair((int) TM_MAR, "Mar" ));
mapDataType.insert(std::make_pair((int) TM_APR, "Apr" ));
mapDataType.insert(std::make_pair((int) TM_MAY, "May" ));
mapDataType.insert(std::make_pair((int) TM_JUN, "Jun" ));
mapDataType.insert(std::make_pair((int) TM_JUL, "Jul" ));
mapDataType.insert(std::make_pair((int) TM_AUG, "Aug" ));
mapDataType.insert(std::make_pair((int) TM_SEP, "Sep" ));
mapDataType.insert(std::make_pair((int) TM_OCT, "Oct" ));
mapDataType.insert(std::make_pair((int) TM_NOV, "Nov" ));
mapDataType.insert(std::make_pair((int) TM_DEC, "Dec" ));
};
~TMmonthpText() {};
std::string message (int i)
{
pos = mapDataType.find(i);
if (pos != mapDataType.end()) return pos->second;
return "Month Unknown";
};
std::string asString (int i)
{
pos = mapDataType.find(i);
if (pos != mapDataType.end()) return pos->second;
return "Month Unknown";
};
int enumIs (std::string message)
{
for (pos=mapDataType.begin(); pos != mapDataType.end(); ++pos)
if (pos->second==message) return pos->first;
return -1;
};
int asEnum (std::string message)
{
for (pos=mapDataType.begin(); pos != mapDataType.end(); ++pos)
if (pos->second==message) return pos->first;
return -1;
};
void show()
{
print();
}
void print ( )
{
std::cout << "------------------" << std::endl;
std::cout << "TM_MONTH(+1) LIST" << std::endl;
std::cout << "------------------" << std::endl;
for (pos=mapDataType.begin(); pos != mapDataType.end(); ++pos)
{
std::cout << pos->first << " " << pos->second << std::endl;
}
std::cout << "-----------------" << std::endl;
};
};
#endif