diff options
author | Robert Pösel <robyer@seznam.cz> | 2014-04-14 09:29:01 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2014-04-14 09:29:01 +0000 |
commit | 14efff8cac3612ae7340e1f3ad791418c941468d (patch) | |
tree | de79e9f7666664d23b554c202f75fae93b5fc165 /plugins/!NotAdopted/name_day/calendar | |
parent | 1e8ce03c8fe14ee1238e15c41391e1c7a5346d7c (diff) |
Add original sources for Name Day plugin from Tibor Szabo (not adopted)
git-svn-id: http://svn.miranda-ng.org/main/trunk@8969 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/!NotAdopted/name_day/calendar')
-rw-r--r-- | plugins/!NotAdopted/name_day/calendar/calendar.cpp | 157 | ||||
-rw-r--r-- | plugins/!NotAdopted/name_day/calendar/calendar.h | 37 |
2 files changed, 194 insertions, 0 deletions
diff --git a/plugins/!NotAdopted/name_day/calendar/calendar.cpp b/plugins/!NotAdopted/name_day/calendar/calendar.cpp new file mode 100644 index 0000000000..209ed2e6a2 --- /dev/null +++ b/plugins/!NotAdopted/name_day/calendar/calendar.cpp @@ -0,0 +1,157 @@ +/** + * FIXME: + * + * + */ + +#include "calendar.h" + + + +/** + * @brief constructor + * @param static names Static array of calendar names. + * + * Insert the names into the dynamic array. + */ +calendar_t::calendar_t(const char *const *const static_names, const size_t names_count, const unsigned icon_id) //: + //country + //icon_id + //names +{ + names.resize(names_count); + + // The first element of the static array is the country name. + + country = static_names[0]; + + for (size_t i = 0; i < names_count - 1; ++i) { + names[i] = static_names[i + 1]; + } + + this->icon_id = icon_id; +} + + +/** + * @brief destructor + * + */ +calendar_t::~calendar_t(void) +{ + names.clear(); +} + +/** + * @brief get_name + * @param day_in_year + * + */ +const string &calendar_t::get_name(const unsigned day_in_year) const +{ + return names[day_in_year]; +} + +/** + * @brief get the day in the year. + * @return index + * @param month + * @param day + * + */ +unsigned calendar_t::get_day_in_year(const unsigned month, const unsigned day) const +{ + // NOTE: it's too late for me to come with some clever + // alg. for this... :) + + + unsigned index = day + 29 * (month - 1) - 1; + + if (month == 1) { + return index; + } + + // January + index += 2; + + // Jan & Feb end. + if (month == 2 || month == 3) { + return index; + } + + + index += 2; + + if (month == 4) { + return index; + } + + index += 1; + + if (month == 5) { + return index; + } + + index += 2; + + if (month == 6) { + return index; + } + + index += 1; + + if (month == 7) { + return index; + } + + index += 2; + + if (month == 8) { + return index; + } + + index += 2; + + if (month == 9) { + return index; + } + + index += 1; + + if (month == 10) { + return index; + } + + index += 2; + + if (month == 11) { + return index; + } + + index += 1; + + return index; +} + +/** + * @brief get the name + * @param day Day in month + * @param month Month in year + * + */ +const string &calendar_t::get_name(const unsigned day, const unsigned month) const +{ + const unsigned day_in_year = get_day_in_year(day, month); + + return get_name(day_in_year); +} + +/** + * @brief get name count + * @return name_count + * + */ +unsigned calendar_t::get_name_count(void) const +{ + return names.size(); +}
\ No newline at end of file diff --git a/plugins/!NotAdopted/name_day/calendar/calendar.h b/plugins/!NotAdopted/name_day/calendar/calendar.h new file mode 100644 index 0000000000..fda275297f --- /dev/null +++ b/plugins/!NotAdopted/name_day/calendar/calendar.h @@ -0,0 +1,37 @@ +/** + * FIXME: + * + */ +#ifndef calendar_h +#define calendar_h + +#include <vector> +#include <string> +using namespace std; + +class calendar_t +{ + public: + calendar_t (const char *const *const static_names, const size_t names_count, const unsigned icon_id); + ~calendar_t (); + + const string &get_name (const unsigned day_in_year) const; + const string &get_name (const unsigned day, const unsigned month) const; + + unsigned get_day_in_year (const unsigned month, const unsigned day) const; + unsigned get_name_count (void) const; + + + + string country; + unsigned icon_id; + + private: + calendar_t () {}; + + vector<string> names; + +}; + + +#endif // calendar_h
\ No newline at end of file |