codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
// C++ Libs #include <string> #include <iostream> #include <vector> // C Libs #include <time.h> #include <stdlib.h> using namespace std; class Year { protected: vector<string> _options; unsigned int _genRandom(){ return (unsigned int) (rand() % this->_options.size()); } string _day(struct tm *day, vector<unsigned int> *lastOnes){ // generate date char buffer [11]; sprintf(buffer, "%04d-%02d-%02d", day->tm_year+1900, day->tm_mon+1, day->tm_mday); string date = buffer; // check for weekends if(day->tm_wday == 0 || day->tm_wday == 6){ return (date + ": Weekend\n"); } // generate random number unsigned int choosen; bool inLastOnes = false; do{ choosen = _genRandom(); inLastOnes = false; for(vector<unsigned int>::iterator i=lastOnes->begin(); i<lastOnes->end();++i){ if(*i == choosen){ inLastOnes = true; } } } while(inLastOnes); lastOnes->push_back(choosen); if(lastOnes->size() > 3){ lastOnes->erase(lastOnes->begin()); } // return result return (date + ": " + this->_options[choosen] + "\n"); } public: vector<string> generate(unsigned int year){ struct tm tmYear; struct tm *tmDay; time_t tYear; vector<string> lines; vector<unsigned int> lastOnes; tmYear.tm_year = year-1900; tmYear.tm_mon = 0; tmYear.tm_mday = 1; tmYear.tm_hour = 0; tmYear.tm_min = 0; tmYear.tm_sec = 1; tYear = mktime(&tmYear); tmDay = localtime(&tYear); do{ lines.push_back(_day(tmDay, &lastOnes)); tYear += 60*60*24; tmDay = localtime(&tYear); } while(tmDay->tm_year == tmYear.tm_year); return lines; } Year(){ string locations[7] = { "Döner", "Subway", "Mekong", "Kantine", "Omar", "Burgerking", "Bagels" }; for(unsigned int i=0;i<7;++i){ this->_options.push_back(locations[i]); } } }; int main(){ Year mealYear; for(unsigned int y=2012;y<2013;++y){ vector<string> lines = mealYear.generate(y); for(vector<string>::iterator i=lines.begin(); i<lines.end();i++){ cout << *i; } } return 0; }
Private
[
?
]
Run code
Submit