Avatar billede pablopablo Nybegynder
23. juni 2006 - 16:38 Der er 6 kommentarer og
1 løsning

Konvertering til DateTime

Hejsa...jeg har lille maskine jeg henter data udfra...bla. en dato....det er ikke mig som har lavet koden....det er en anden gut som komm. med en dll com er skrevet i C fra C# af...det virker faktisk meget fint! Dog er der et lille problem har jeg fundet ud af...

Maskinen indenholde nogle resultater og hvert resultat indeholder en dato/tid....dette er gemt som er UINT32....og i C# skal dette nr. konverteres om til et DateTime objekt....det virker næsten, men ikke helt....hvis dato'en i maskinen er:

4/20/2005 10:06:06 bliver det i C# laver om til 4/20/2004 10:06:06...det er altså årstallet som ikke er korrekt!

den reelle værdi, som hentes ind fra maskinen er i dette tilfælde 1082448366.

Det skal nævnes, at ham som har kodet det, har lavet SIN EGEN metode, til at konvertere værdien til et DateTime objekt!

Metoden ser således ud:

public string ConvertTime_t(uint time_t)
        {
            long win32FileTime = (10000000*(long)time_t) + 116444736000000000;
            string format = "dd-MM-yyyy hh:mm:ss";
            return DateTime.FromFileTime(win32FileTime).ToString(format);
        }

Jeg har selv forsøgt med en standard metode i C#...

DateTime dt = Convert.ToDateTime(UINT-værdi) men uden held, der bliver smidt en exception, som lyder: "Invalid cast from UInt32 to DateTime"...

Håber meget i kan hjælpe mig!

Mvh. PabloPablo
Avatar billede arne_v Ekspert
23. juni 2006 - 17:03 #1
er det ikke bare den konstant som du ligger til der skal foroeges med et aar ?
Avatar billede pablopablo Nybegynder
23. juni 2006 - 17:10 #2
jo måske...? det er som sagt ikke mig, som har lavet den metode...så er ikke inde i tankerne bag....men jo sikkert? hvad vil værdien så være??
Jeg prøvede selv med en integreret C# metode, idet jeg jo normalt vil foretrække dette....
Avatar billede arne_v Ekspert
23. juni 2006 - 17:20 #3
proev og lig 365*24*60*60*10000000 til
Avatar billede pablopablo Nybegynder
23. juni 2006 - 17:35 #4
DU ér og bliver jo bare fantastisk ;) ingen apps ville virke dig ;)
Super mange tak for det!!

Ps. Har du en ide om, hvorfor den indbyggede fucktion i C# fejler? Der må da være en stardard måde/metode, som kan håndterer denne slags...?

Læg et svar!
Avatar billede arne_v Ekspert
23. juni 2006 - 18:09 #5
man kan ikke bare konvertere en int/long til en DateTime

fordi hvad indeholder den int/long ?

antal sekunder siden 1-JAN-1970 ?

antal millisekunder siden 1-JAN-1970 ?

tiendedele mikrosekunder siden 1-JAN-1601 ?

tiendedele mikrosekunder siden 17-NOV-1858 ?

(ovenstaaende er nogle af de kendte)
Avatar billede arne_v Ekspert
23. juni 2006 - 18:14 #6
og et svar
Avatar billede pablopablo Nybegynder
23. juni 2006 - 18:20 #7
Ja okay...det giver jo også fin mening...men det virker i hvert fald nu!!

Så, no more worries ;)

God Sankt Hans!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester