Results 1 to 2 of 2

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User rumen_33's Avatar
    Join Date: May:2007
    Location: Canada
    Posts: 137

    getTime(); C++, Ìàëêî ïîìîù ìîëÿ!

    Çäðâåéòå íà âñè÷êè. Íàïèñàõ åäíà ïðîãðàìà, êîÿòî èçãëåæäà ìàëêî ñòðàííî íàïèñàíà, êàòî íàïðèìåð çàùî ñ if -else if, âìåñòî ñ ìàñèâ, íî òîâà ìè áÿõà èçèñêâàíèÿòà! Èìàì îáà÷å ïðîáëåì, ÷å ïðîãðàìàòà íå ìè ïîêàçâà òî÷íàòà äàòà! Ìîëÿ àêî ìîæå íÿêîé äà ìè ïîìîãíå! Ñëåä áåçêðàéíî ñëåäåíå íà êîäà è ïðîìåíè óñïÿõ äà ïîñòèãíà íÿêàêâè ðåçóëòàòè, êîèòî â ìîìåíòà ñà íà ëèöå, íî âñå ïàê íå ìîãà äà ÿ äîêàðàì äà ðàáîòè ïî íà÷èíúò ïî êîéòî òðÿáâà!
    Áëàãîäàðÿ âè!

    Åòî ãî è êîäà:

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    void getTime ()
    {
    string month;
    int date;

    long seconds = time(0) - (7*3600);

    //Years
    int years = seconds / 31536000;
    //cout <<years<<endl;

    //Seconds left for the year
    int leftSecondsYr = seconds % 31536000;
    //cout <<leftSecondsYr<<endl;

    //Leap Years
    int leaps = ((years + 2) / 40) / 3;

    //Actual # seconds
    int actualSeconds = leftSecondsYr - (leaps * 86400);
    //cout <<actualSeconds<<endl;

    //Days
    int days = actualSeconds / 86400;
    //cout <<days<<endl;

    //Seconds left for the day
    int leftSecondsDay = actualSeconds % 86400;
    //cout <<leftSecondsDay<<endl;




    //Month and date
    if (days >= 0 && days <= 31)
    {
    month = "January";
    date = days - 0;
    }

    else if (days >= 32 && days <= 59)
    {
    month = "February";
    date = days - 32;
    }

    else if (days >= 60 && days <= 90)
    {
    month = "March";
    date = days - 60;
    }

    else if (days >= 91 && days <= 120)
    {
    month = "April";
    date = days - 91;
    }

    else if (days >= 121 && days <= 151)
    {
    month = "May";
    date = days - 121;
    }

    else if (days >= 152 && days <= 181)
    {
    month = "June";
    date = days - 152;
    }

    else if (days >= 182 && days <= 212)
    {
    month = "July";
    date = days - 182;
    }

    else if (days >= 213 && days <= 243)
    {
    month = "August";
    date = days - 213;
    }

    else if (days >= 244 && days <= 273)
    {
    month = "September";
    date = days - 244;
    }

    else if (days >= 274 && days <= 304)
    {
    month = "October";
    date = days - 274;
    }

    else if (days >= 305 && days <= 334)
    {
    month = "November";
    date = days - 305;
    }

    else if (days >= 335 && days <= 365)
    {
    month = "December";
    date = days - 335;
    }
    int currentYear = 1970 + years;

    cout <<month <<" " <<date <<", " <<currentYear <<endl;


    //Hours
    int hour = leftSecondsDay / 3600;

    //Minutes
    int leftminutes = leftSecondsDay % 3600;
    int minutes = leftminutes / 60;

    //Seconds
    int leftseconds = leftminutes % 60;
    seconds = leftseconds;


    cout <<hour <<":" <<minutes <<":" <<seconds <<endl;
    }



    int main()
    {
    getTime();

    system("PAUSE");
    return EXIT_SUCCESS;
    }
    |Asus P5K Premium WiFi|Intel C2D E6750|Kingston 2x1GB@667MHz|Seagate 250GB+500GB|Coolmax CP 500W|Asus EN 8800 GTS 320MB|

  2. #2
    ɐ-əpoɔᴉu⋂ ɐí íəÔ anrieff's Avatar
    Join Date: Apr:2004
    Location: Sofia
    Posts: 8,448
    Åé òàçè ÷àñò îò êîäà òè íå ìè ñå âèäè âÿðíà:
    Code:
    //Years
    int years = seconds / 31536000;
    //cout <<years<<endl;
    è ïîñëå ñ ìîäóëà ïî ñúùîòî ÷èñëî. Ìàãè÷åñêèÿ äåëèòåë ãëåäàì å 365 * 24 * 60 * 60, êîåòî òðÿáâà äà å áðîÿ ñåêóíäè â ãîäèíà. Îáà÷å, òàêà ïðèåìàø, ÷å âñè÷êè ãîäèíè ñà íåâèñîêîñíè, è ðàç÷èòàø íà òîçè ôàêò çà äà îïðåäåëèø ãîäèíàòà, à òîâà íå å âÿðíî.

    Íàïðèìåð, ìîæå äà òè ñå îêàæå, ÷å ñåêóíäàòà ñå ïàäà íÿêúäå â ñàìîòî íà÷àëî íà ãîäèíàòà, òîãàâà leftSecondsYr ùå å ìàëêî ÷èñëî, è ïîñëå ïðè
    Code:
    int actualSeconds = leftSecondsYr - (leaps * 86400);
    ùå òè ñå ïîëó÷è îòðèöàòåëíî ÷èñëî

    Çà äà çàðàáîòè ðåøåíèåòî òè òðÿáâà åäèí ìàñèâ, ñúäúðæàù îò êîÿ ñåêóíäà ïî÷âà âñÿêà ãîäèíà îò 1900 íàñàì, êîåòî, äîðè ñ ìàñèâ å ãíóñíî, à àêî òðÿáâà äà ãî ïðàâèø ñ if-îâå ùå å ìíîãî òúæíî

    P.S.: À çàùî íå ïîëçâàø ñòàíäàðòíàòà C ôóíêöèÿ localtime?
    Åòî òàêà ñå ïëîäÿò òå, êàçâàì ñè àç. Ïîä íîñà òè.
    "640K îught to be enough for anybody" - Bill Gates, 1981
    Òåñòîâå íà áàòåðèè::Machine specs::Fract::AGG::ÍåÑåÑúðäè×îâå÷å::Baileys::blog::YouTube channel

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè