edebroMedlem sedan aug. 2001261 inlägg 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?
GladhMedlem sedan maj 20012 812 inlägg DinoMedlem sedan sep. 20011 914 inlägg 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. :)
GladhMedlem sedan maj 20012 812 inlägg 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.
DinoMedlem sedan sep. 20011 914 inlägg
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))));
GladhMedlem sedan maj 20012 812 inlägg 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
DinoMedlem sedan sep. 20011 914 inlägg Älta inte i det förflutna. Se framåt, eller i alla fall till inlägg #714203. :birp
edebroMedlem sedan aug. 2001261 inlägg 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#.
GladhMedlem sedan maj 20012 812 inlägg 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