#using <mscorlib.dll>
#include "ale.h"
using namespace System;
using namespace System::Threading;
namespace ProgettoStageReal
{
public ref class ThreadExample
{
System::Windows::Forms::TextBox^ tx;
int ore,minuti,npause,vai,ora_init,minuti_init,pausa,ora_init_def,minuti_init_def,t_totale;
public:
ThreadExample(System::Windows::Forms::TextBox^ t)
{
pausa=npause=ore=minuti=t_totale=0;
tx=t;
vai=1;
}
void settapausa(int a)
{
pausa=a;
}
void settavai(int a)
{
vai=a;
}
void DoWork()
{
DateTime d1 = DateTime::Now;
ora_init=ora_init_def=d1.Hour;
minuti_init=minuti_init_def=d1.Minute;
while (vai)
{
if (pausa==1)
{
npause++;
DateTime d1 = DateTime::Now;
if (d1.Hour>=ora_init)
{
if (d1.Minute>=minuti_init)
{
ore=ore+d1.Hour-ora_init;
ora_init=d1.Hour;
minuti=minuti+d1.Minute-minuti_init;
minuti_init=d1.Minute;
}
else
{
minuti=minuti+d1.Minute+60-minuti_init;
minuti_init=d1.Minute;
if (d1.Hour>ora_init+1)
{
ore=ore+d1.Hour-(ora_init+1);
}
ora_init=d1.Hour;
}
}
else
{
if (d1.Minute>=minuti_init)
{
ore=ore+d1.Hour+24-ora_init;
ora_init=d1.Hour;
minuti=minuti+d1.Minute-minuti_init;
minuti_init=d1.Minute;
}
else
{
minuti=minuti+d1.Minute+60-minuti_init;
minuti_init=d1.Minute;
}
}
while(minuti>=60)
{
ore++;
minuti-=60;
}
tx->Text=ProgettoStageReal::Definizioni::tempototale+" "+ore.ToString()+" , "+minuti.ToString()+" min\r\n"+ProgettoStageReal::Definizioni::pausetotali+" "+npause.ToString();;
pausa=2;
}
else if (pausa==0)
{
}
else
{
DateTime d1 = DateTime::Now;
ora_init=d1.Hour;
minuti_init=d1.Minute;
}
Thread::Sleep(500);
}
if (pausa!=2)
{
DateTime d1 = DateTime::Now;
if (d1.Hour>=ora_init)
{
if (d1.Minute>=minuti_init)
{
ore=ore+d1.Hour-ora_init;
ora_init=d1.Hour;
minuti=minuti+d1.Minute-minuti_init;
minuti_init=d1.Minute;
}
else
{
minuti=minuti+d1.Minute+60-minuti_init;
minuti_init=d1.Minute;
if (d1.Hour>ora_init+1)
{
ore=ore+d1.Hour-(ora_init+1);
}
ora_init=d1.Hour;
}
}
else
{
if (d1.Minute>=minuti_init)
{
ore=ore+d1.Hour+24-ora_init;
ora_init=d1.Hour;
minuti=minuti+d1.Minute-minuti_init;
minuti_init=d1.Minute;
}
else
{
minuti=minuti+d1.Minute+60-minuti_init;
minuti_init=d1.Minute;
}
}
while(minuti>=60)
{
ore++;
minuti-=60;
}
tx->Text=ProgettoStageReal::Definizioni::tempototale+" "+ore.ToString()+" , "+minuti.ToString()+" min\r\n"+ProgettoStageReal::Definizioni::pausetotali+" "+npause.ToString();;
}
}
};
}