---
title: "DateDiff() i C#"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/86326-datediff-i-c"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "edebro"
published: "2003-09-18T09:22:22.000Z"
updated: "2003-09-18T19:48:48.000Z"
replies: 8
views: 524
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/86326-datediff-i-c"
---

# DateDiff() i C#

## #1 — edebro, 2003-09-18T09:22Z

Det är grymt många VB.NET/VBScript-funktioner jag saknar i C#.
Bland annat funktionerna Left() och Right(). Iofs går detta att lösa med Substring(). Men hur som helst, till mitt problem.

Jag har ett datum som jag vill jämföra med dagens datum.
Om datumet är samma vill jag skriva ut "idag", är det gårdagens datum ska "igår" skrivas ut.
Är det något annat datum skrivs bara datumet ut i sin helhet.

Det jag eftersöker är altså en motsvarelse till VB.NETs DateDiff(), fast i C#.

Någon som vet hur jag löser detta på smidigaste sätt?

Permalänk: https://www.webforum.nu/p/86326

## #2 — Gladh, 2003-09-18T09:34Z

<http://www.aspfree.com/articles/1188,1/articles.aspx>

\- Magnus

Permalänk: https://www.webforum.nu/p/1161683

## #3 — Dino, 2003-09-18T09:42Z

```
switch(DateTime.Compare(DateTime.Now, OwnDate))
{
   case -1 : // OmnDate > dagens datum
      Response.Write(OwnDate);
      break;
   case 0 :
      Response.Write("Idag"); // OmnDate == dagens datum
      break;
   case 1 :
      Response.Write("Igår"); //OmnDate < dagens datum
      break;
}
```

red// Såg inte att Gladh redan svarat. :)

Permalänk: https://www.webforum.nu/p/1161687

## #4 — Gladh, 2003-09-18T10:28Z

switch satsen kommer inte att fungera eftersom den bara kollar om dagensdatum är större eller mindre än det andra, inte hur många dagar.

Permalänk: https://www.webforum.nu/p/1161721

## #5 — Dino, 2003-09-18T12:49Z

> **Gladh skrev:**
>
> switch satsen kommer inte att fungera eftersom den bara kollar om dagensdatum är större eller mindre än det andra, inte hur många dagar.

Nä, det är inte någon C# version av DateDiff utan en (nu) funktion som möter trådskaparens beskrivning.

> Jag har ett datum som jag vill jämföra med dagens datum. 
> Om datumet är samma vill jag skriva ut "idag", är det gårdagens datum ska "igår" skrivas ut. 
> Är det något annat datum skrivs bara datumet ut i sin helhet.

 
Uppdaterad kod:

```
public string Grr(DateTime CompareDate)
{
   DateTime a = DateTime.Now;
   string c = string.Empty;
   switch(DateTime.Compare(a, CompareDate))
   {
      case -1 : 
         c = CompareDate.ToString();
         break;
      case 0 :
         c = "Idag";
         break;
      case 1 :
         if(CompareDate == a.Subtract(TimeSpan.FromDays(1)))
         {
            c = "Igår";
            break;
         }
         goto case -1;
      }
   return c;
}

---

Response.Write(Grr(DateTime.Now.Subtract(TimeSpan.FromDays(1))));
```

Permalänk: https://www.webforum.nu/p/1161849

## #6 — Gladh, 2003-09-18T12:53Z

Det var tur att du uppdaterade din kod, för din första switch sats skulle aldrig klarat av att göra vad trådskaparen ville.

\- Magnus

Permalänk: https://www.webforum.nu/p/1161851

## #7 — Dino, 2003-09-18T13:02Z

Älta inte i det förflutna. Se framåt, eller i alla fall till inlägg #714203.  :birp

Permalänk: https://www.webforum.nu/p/1161860

## #8 — edebro, 2003-09-18T14:10Z

Tack för svaren. Jag ska se om jag får någon rätsida på detta nu.

Men visst håller ni med, vissa funktioner saknar man bra mycket i C#.

Permalänk: https://www.webforum.nu/p/1161910

## #9 — Gladh, 2003-09-18T19:48Z

Just DateDiff() har jag faktiskt aldrig tänkt på eftersom jag inte behövt använda den själv än. Men helt klart så tycker jag det är en funktion som skall finnas med. Det finns faktiskt rätt många tillämpningar när man vill veta hur många dagar/månader/år det är mellan 2 datum.

Tycker det verkar konstigt om inte MS har någon smart lösning på problemet. Det är nog bara vi som inte vet hur :)

\- M

Permalänk: https://www.webforum.nu/p/1162103

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/86326-datediff-i-c
