Avatar billede kennethv Nybegynder
05. august 2009 - 14:26 Der er 7 kommentarer og
1 løsning

Hvordan trækker 2 datoer fra hinanden

Jeg har db, hvor mit datofelt er en string.

Jeg skal have trukket mit datofelt fra dags dato, som så enten vil give mig minus hvis mit datofelt er ældre end dags dato og omvendt.

if (datofelt - dagsdato) > 0 then
{
  Din tid er opbrugt;
}
else
{
  Du har 1 dag tilbage;
}

Jeg kender heller ikke kommando til at få dato i C#.
Avatar billede arne_v Ekspert
05. august 2009 - 14:35 #1
Dit felt i databasen burde nok vaere en dat type og ikke en streng.

Men proev:

DateTime dt = DateTime.Parse(dindatostreng);
if(dt < DateTime.Now.Date) {
Avatar billede kennethv Nybegynder
05. august 2009 - 15:18 #2
Hmm, jeg har lavet feltet om til en DateTime.

Og sidder og kigger lidt på de muligheder der og har fundet det her, men det driller lidt:

if (DateTime.Now.Date.CompareTo(mySqlDataReader[1].GetType)) == 0

gør jeg noget forkert?
Avatar billede kennethv Nybegynder
05. august 2009 - 15:39 #3
Har osse prøvet det du har forslået.

Det virker heller ikke.

I, if-sætningen, dt får en underscore der er rød.

Bruger Visual Web Developer 2008 EE
Avatar billede kennethv Nybegynder
05. august 2009 - 15:56 #4
Jeg er ikke klar over om jeg skal bruge .GetType i indlæg #2. Synes dog ikke at jeg har så meget at vælge i mellem.

.GetHashCode
.ToString
.Equals
.GetType

Jeg er helt strandet her. :)
Avatar billede kennethv Nybegynder
05. august 2009 - 16:36 #5
Hmm, af een eller anden årsag har jeg fået det til at virke.

meget mystisk.
Avatar billede kennethv Nybegynder
05. august 2009 - 16:37 #6
Men Arne. Smid et svar, så får du pointe alligevel. Jeg skylder dig lidt. :)
Avatar billede arne_v Ekspert
06. august 2009 - 04:13 #7
Følgende virker hos mig:

using System;

namespace E
{
    public class Program
    {
        public static void Test(string s)
        {
            DateTime dt = DateTime.Parse(s);
            if(dt < DateTime.Now.Date)
            {
                Console.WriteLine(s + " er fortid");
            }
            else
            {
                Console.WriteLine(s + " er ikke fortid");
            }
        }
        public static void Main(string[] args)
        {
            Test("4-AUG-2009");
            Test("7-AUG-2009");
            Console.ReadKey();
        }
    }
}
Avatar billede arne_v Ekspert
06. august 2009 - 04:13 #8
Og et svar.
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