Dobrý den. Google mě zklamal (asi jsem nepoužil vhodnou definici dotazu), tak zkusím požádat o pomoc zde. Mohl by mi někdo poradit jak v C# (pracuji v VS2008) zjistím systémový čas? Potřeboval bych zjistit systémový čas na začátku úlohy a pak na konci úlohy (nemusí se nikde zobrazovat, jen by se zapsal do proměnných), načež bych se z toho pokusil vyčarovat rozdíl (ten by se měl zobrazit v příkazové řádce po skončení úlohy, kterou v něm spustím). Děkuji mnohokrát.
Fórum › C / C++
Výpis systémového času v C/C++
Zdravím,
je to IMHO celkem logický, ale přesto se na to dost lidí ptá (takovej paradox).
DateTime.Now
Jestli dobře chápu, tak chceš změřit čas provedení nějaký operace. Doporučuju použít http://msdn2.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx.
To ADam : NE ja se omlouvám, ve škole mě pár lidí naštvalo, a ty jsi byl první, komu jsem to mohl "oplatit", omlouvám se, ted jsem se chtěl omluvit aněco ti předhodit, ale DeaLer mě předBěh, fakt se omlouvám
Editoval DeaLer: Příspěvek, kterého se to týká jsem smazal, pokud ho chcete vidět, je mi to jedno ;)
yaqwsx: vpohodě
Asi si to příliš idealizuji, ale není nějaký "jednoduchý" využítí té funkce StopWatch? Když si ten kód z DeaLerova odkazu ( http://msdn2.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx) načtu do samostatné konzolové aplikaci tak je to vpohodě, ale v momentě ho chci navléct na ten program kvůli kterému jsem se na to ptal, tak to prostě nerozchodím. Nejde do hlavičky nadeklarovat System (ani přes using ani include) a jen tak na začátek hodit
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
a na konce stopWatch.Stop(); a výpis hodnoty
nestačí
Ještě mě napadlo, jestli by nešlo do té konzolové aplikace vložit odkaz na spouštěcí soubor vybraného programu a spuštšt to odsud, ale tam je potíž je ten spouštěcí soubor potřeba spustit s parametrem a to jsem bohužel nevykoumal jak na to (navíc by to nebylo úplně ono). Nevíte tedy prosím jak z toho ven? (ano jsou to amatérské dotazy, ale to proto že jsem amatér)
To ADam : Někde děláš něco špatně, ukaž danou část kódu.
To DeaLer : ona asi bude potíž v tom, že ta funkce StopWatch je .NET Framework a ten program není .Net (nebo jak to říct odborně). Když to tam deklaruju podle vzoru z microsoftu tak nemůžu použít
using System;
using System.Diagnostics;
using System.Threading;
protože křičí, že to tuhle deklaraci nezná a nemůžu ani psát
Stopwatch stopWatch = new Stopwatch();
protože i v téhle deklaraci to zahlásí chybu
Ještě jsem našel tohle
void WINAPI GetSystemTime(
__out LPSYSTEMTIME lpSystemTime
);
a to konkrétněhttp://msdn2.microsoft.com/en-us/library/ms724390(VS.85).aspx zde. Ale to nemám tušení jak to funguje
kód a výpis chyb dodám večer, teď jsem bohužel ve škole. Jinak díky, že semnou ztrácíte čas.
To Anonymní uživatel : Když píšeš v C#, tak píšeš .NET aplikaci (to nelze změnit). Jakou máš verzi .NET frameworku? Stopwatch je ve verzi 2.0 a vyšších.
Verze by to měla být 3.0 (určitě vyšší než 2.0).
Hned na začátek prográmu dám
using System;
using System.Diagnostics;
using System.Threading;
Pak na místo, kde chci začít měřit dám
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
a úplně na konec dám
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10);
Console.WriteLine(elapsedTime, "RunTime");
ale jakmile to chci zkompilovat, tak to vyhodí kupu chyb (ty jsem zkopíroval do přiloženého textového souboru).
Chyba bude nejspíš v tom jak, to zapisuju úplně na začátku (using system;), ale nevím jak to obejít
To ADam : Ty chyby jsou celkem jasný, ale dost nejednoznačný, abych mohl mluvit konkrétně. Pošli celej zdroják, pak ti řeknu, co kde máš blbě.
BTW: proč maj soubory příponu .c? a ne .cs? píšeš to opravdu v C#?
Hmm, jak tak pozoruju, tak já vůl měl vsugerované, že C# a C je to samé. Ale jak vino není, takže program je v C. Ve zdrojáku už mám dané to StopWatch, takže by to mělo házet chyby. A kdyby byl problém s knihovnou cdlib.dll, tak tu stačí zakázat. Jinak ten základní soubor je TestLameDecodeVc6.dsw
Tak to nemůžu sloužit. Předám tě dál ;)
To ADam :
Funkce time() v time.h by mela vracet pocet sekund od 1.1. 1970. Zajimavejsi je ovsem fce ve stejne knihovne jmenem clock(), ktera vraci pocet "clock ticks" od spusteni programu - pomoci konstanty CLOKS_PER_SEC je potom muzes prevest na casovou jednotku, kterou pozadujes...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Vytvoření rozsahu času (od-do) ze seznamu časů — založil CZechBoY
Změna systémového hesla — založil ghibulo
Změna systémového menu v Tkinteru — založil wickzig
Spustenie počítača (systémového priečinku) — založil delphak
Moderátoři diskuze