---
title: "Hjälp med att göra om från ASP till .NET C#"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/165584-hjälp-med-att-göra-om-från-asp-till-net-c"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "thevice"
published: "2007-10-17T19:18:44.000Z"
updated: "2007-10-19T15:17:01.000Z"
replies: 11
views: 885
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/165584-hjälp-med-att-göra-om-från-asp-till-net-c"
---

# Hjälp med att göra om från ASP till .NET C#

## #1 — thevice, 2007-10-17T19:18Z

Hejsan!
Jag har länge försökt klura ut hur jag ska kunna göra om en kod för  datum som jag har i ASP till .NET C#. Eftersom DateDiff inte fungerar med C# så blir det problem för min lilla hjärna att komma på en lösning. Kanske ni kan hjälpa till?

Koden skriver fixar till datumet så det t.ex blir 15:e Apr 23:37:

```
Function SnyggtDatum(datumet)
	text = datumet
	text = replace(text," ","|")
	text = replace(text,"-","|")
	text = replace(text,":","|")
	datum = split(text,"|")

	dag = datum(2)
	Manad = datum(1)
	Minut = datum(4)
	Timme = datum(3)

	dag = replace(dag, "0", "")

	If dateDiff("d", datumet, now) = 0 Then
		Dagen = "Idag"
		snyggtDatum = ""& Dagen &" "& Timme &":"& minut &""
	ElseIf dateDiff("d", datumet, now) = 1 Then
		Dagen = "Igår"
		snyggtDatum = ""& Dagen &" "& Timme &":"& minut &""
	Else
		If Dag < 3 Then
			bojning = ":a" 
		Else 
			bojning = ":e"
		End If 
    
		If manad = 1 Then
			manad = "Jan"
		ElseIf manad = 2 Then
			manad = "Feb"
		ElseIf manad = 3 Then
			manad = "Mars"
		ElseIf manad = 4 Then
			manad = "Apr"
		ElseIf manad = 5 Then
			manad = "Maj"
		ElseIf manad = 6 Then
			manad = "Juni"
		ElseIf manad = 7 Then
			manad = "Juli"
		ElseIf manad = 8 Then
			manad = "Aug"
		ElseIf manad = 9 Then
			manad = "Sept"
		ElseIf manad = 10 Then
			manad = "Okt"
		ElseIf manad = 11 Then
			manad = "Nov"
		ElseIf manad = 12 Then
			manad = "Dec"
		End If

            snyggtDatum = ""& Dag &""& bojning &" "& manad &" "& Timme &":"& minut &""
        End If
End Function
```

Det kanske är lite mycket kod. Men ni kanske vet någon artikel eller liknande som gör som gör samma sak?

Tack på förhand!
/ Timmie

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

## #2 — desdecado, 2007-10-17T22:06Z

```
public string SnyggtDatum(date datumet)
{
return datumet.ToLongDateString();
}
```

 

Fungerar inte det? (lite onödigt att göra det till en funktion iofs...)  :)

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

## #3 — thevice, 2007-10-18T15:03Z

ToLongDateString blir ju Wednesday, May 16, 2001.
Känns som om det är lite långt ifrån det som jag vill åstakomma. :)

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

## #4 — spango, 2007-10-18T15:42Z

Provat att kanske söka? :) <http://www.google.se/search?hl=sv&q=c%23+%22date+formatting%22&btnG=S%C3%B6k&meta=>

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

## #5 — desdecado, 2007-10-18T19:34Z

> **thevice skrev:**
>
> ToLongDateString blir ju Wednesday, May 16, 2001.
> Känns som om det är lite långt ifrån det som jag vill åstakomma. :)

Jomen det är bara att switcha till svenska. Sök på "System.Globalization" så får du svaret.

Däremot så får du skriva en specialare för att få fram "Idag" etc.

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

## #6 — Gladh, 2007-10-18T19:48Z

Nu kan jag inte alla parameter, men du kan skicka in pattern till din ToString().

```
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
```

ger dig
2007-10-17 21:48:23

Du kan där leka runt med de olika formattyperna så i ditt fall så skulle det bli något sånt här:

```
DateTime.Now.ToString("dd:{0} XXXX HH:mm:ss", (DateTime.Now.Day < 3 "a" : "e"))
```

Nu har jag inte provat det, men teoretiskt borde det fungera om du bara kommer på vad du skall skriva istället för XXXX för att få fram dagensmånad. Men svaret finns på MSDN om du letar efter DateTime.

\- M

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

## #7 — thevice, 2007-10-18T20:47Z

Var visst inte så himla svårt som jag trodde:

```
		void FixDate(string Date)
		{
			DateTime DateLabel = DateTime.Parse(Date);
			DateTime DateToday = DateTime.Today;
			string FixedDate;

			if (DateLabel.Date == DateToday)
			{
				FixedDate = "Idag " + DateLabel.ToString("HH:mm");
			}
			else if (DateLabel.Date == DateTime.Now.Date.AddDays(-1.0))
			{
				FixedDate = "Igår " + DateLabel.ToString("HH:mm");
			}
			else
			{
				if (DateLabel.Date.Day < 3)
				{
					FixedDate = DateLabel.Date.Day + ":a";
				}
				else
				{
					FixedDate = DateLabel.Date.Day + ":e";
				}
				FixedDate += " " + DateLabel.Date.ToString("MMM") + " " + DateLabel.ToString("HH:mm");
			}

			datumLabel.Text = FixedDate.ToString();
		}
```

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

## #8 — Gladh, 2007-10-19T06:55Z

Du kan lösa det med lite mindre kod, dock blir den lite mer svårläslig.

```
string ConvertIntoFormatedString(DateTime tempDate)
{
            if (DateTime.Now.Date.AddDays(-1) <= tempDate.Date)
                return string.Format("{0} {1}",(DateTime.Now.Date == tempDate.Date ? "Idag" : "Igår"), tempDate.ToString("HH:mm"));
            else
                return tempDate.ToString(string.Format("dd:{0} MMM HH:mm", (DateTime.Now.Day < 3 ? "a" : "e")));
}
```

Denna koden är kortare, men gör samma sak, den är dock lite mer komplex. Men det finns 2 viktiga saker med denna kod som du inte har i din.

Det första är att jag sätter ingen control i koden, utan jag krymper uppgiften i koden till att bara omvandla datumet till en tid, vilket för att du kan återanvända din kod även i applikationer där du inte har datumLabel kontrollen med. Man skall alltid försöka att sätta värden på kontroller så nära frontend som möjligt. Med min kod kan du flytta bak själva konvertering av tiden till en egen assembly, typ Helper.Time och alla möjliga funktioner du vill göra med en tid, lägger du där i, så som att hitta första veckadagen i en månda, kanske hitta den 4 sista dagen i månaden, hitta "businessdagar" osv osv...

Den andra förändringen som jag gör är att jag tar emot ett datetime objekt istället för en sträng. Det gör jag för att göra koden i funktionen mer robust. Som det är i ditt exempel så kan man skicka in en sträng och få funktionen att krascha i runtime, miljö. Men min funktion kan du inte krascha på samma sätt, eftersom du måste skicka in en datetime.

I ditt fall så har dessa 2 åtgärder säkert ingen som helst betydelse, men om du skulle bygga större projekt, där du bygger små komponenter som andra utvecklare skall kunna använda sig av, så har det faktiskt riktigt stor påverkan, på hur robust din kod kommer att uppfattas av andra, dessutom så ser det ju bättre ut för dig om koden kraschar i någon annans komponent för att man matat in datumet fel än i din komponent för att du inte kontrollerar så att datumet är i ett korrekt format innan du omvandlar strängen till ett datum.

\- M

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

## #9 — Zaiman, 2007-10-19T12:51Z

Wow!! Så trevligt det är med bra förklaringar och människor som verkligen tar sig tid!

Stor kompispuff på dig Gladh, bra jobbat!! :bire

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

## #10 — thevice, 2007-10-19T13:42Z

Jag kan inte mer än att tacka dig tyvärr Gladh. Det är sådanna här beskrivningar som gör att man lär sg nya saker och inte bara håller på med samma stuk hela tiden.
Tack så mycket!

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

## #11 — Pace, 2007-10-19T14:13Z

Ovidkommande kanske, men tänk på att Svenska Akademin rekommenderar att man använder särskrivningen *i dag* samt *i går*.

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

## #12 — Travoni, 2007-10-19T15:17Z

Inte ovidkommande, bara lite OT. ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/165584-hjälp-med-att-göra-om-från-asp-till-net-c
