Для тех из Вас с опытом VB.NET, (тип) совпадает с DirectCast и, "как тип" совпадает с TryCast.
#include <stdio.h>
#include <time.h>
#include <windows.h>
using namespace std;
void wait ( int seconds );
int main ()
{
time_t start, end;
double diff;
time (&start); //useful call
for (int i=0;i<10;i++) //this loop is useless, just to pass some time.
{
printf ("%s\n", ctime(&start));
wait(1);
}
time (&end);//useful call
diff = difftime(end,start);//this will give you time spent between those two calls.
printf("difference in seconds=%f",diff); //convert secs as u like
system("pause");
return 0;
}
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
это должно нормально работать и на solaris / unix, просто удалите ссылки на win
Вам просто нужно сохранить дату / время запуска приложения. Всякий раз, когда вам нужно отобразить, как долго работает ваша программа, получите текущую дату / время и вычтите время запуска приложения.
Вы приближаетесь к нему задом наперед. Вместо того, чтобы иметь переменную, вам нужно беспокоиться об обновлении каждую секунду, просто инициализируйте переменную при запуске программы текущим временем, а затем, когда вам нужно знать, сколько секунд прошло, вы вычитаете текущее текущее время из этого начального времени. Таким образом, гораздо меньше накладных расходов и не нужно заботиться о некотором обновлении переменных, связанных со временем.
Очень простой метод:
#include <time.h>
time_t start = time(0);
double seconds_since_start = difftime( time(0), start);
Главный недостаток этого метода состоит в том, что вам нужно запрашивать обновления. Для этого вам понадобится поддержка платформы или какая-то другая библиотека / фреймворк.