Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Datum i olika former.

Postades av 2004-07-27 01:47:17 - Magnus Jonsson, i forum asp.net generellt, Tråden har 18 Kommentarer och lästs av 725 personer

Jag undrar i vilka olika typer man kan skriva ut ett datum.
Går det att göra på nått sätt att det blir Idag, Igår, 2004-07-24, etc. Eller nått liknande?


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 02:18:46 - Andreas Håkansson

Magnus,

På <b>DateTime</b> objektet finns det en rad olika metoder för att manipulera tid och datum, så som <b>AddDays</b>, <b>AddHours</b>, <b>AddMilliseconds</b>, <b>AddMinutes</b>, <b>AddMonths</b>, <b>AddSeconds</b>, <b>AddTicks</b> och <b>AddYears</b>.

Samtliga av dessa metoder kan ta positiva värden för att lägga till, samt negativavärden för att dra ifrån från datumet. Använd <b>DateTime.Now</b> för att få tag i aktuell tid och datum, eller använd en av konstruktorerna för att skapa ett objekt för en viss tid/datum.


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 02:28:42 - Kerim Aziz

Såhär kan man göra för att skriva ut "Idag"

<code>
dim dag as string
dag = datetime.today

if dag = DateTime.today then
response.write("Idag")
end if</code>


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 02:47:58 - Andreas Håkansson

KeLLeFeNi ,

Inte riktigt då det först och främst skall vara <b>DateTime.Today</b>, samt att det returnerar ett nytt <b>DateTime</b> objekt med dagensdatum samt tiden satt till <b>00:00:00</b>. Skillnaden mellan <b>DateTime.Today</b> och <b>DateTime.Now</b> är just att tidpunkten bibehålls med <b>Now</b> och ignoreras med <b>Today</b>.


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 12:15:20 - Magnus Jonsson

hmm, okej. Finns det någon typ för igår, så man kan göra nått sånt här.
<code>
dim dag as string
dag = "& Container.DataItem("Datum") &"

if dag = DateTime.Now then
response.write("Idag")
elseif dag = DateTime.Yesterday Then '(om det finns klass som kan kolla det)
response.write("Igår")
else
response.write(""& DateTime.Now.ToShortDateString(); &"")
end if
</code>


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 12:45:30 - Andreas Håkansson

Magnus,

Som jag sa.. använd <b>DateTime.Now</b> eller <b>DateTime.Today</b> om du inte är intresserad av klockan. Använd sedan <b>AddDays</b> metoden på den med ett värde av <b>-1</b> för att få igår, dvs.

Dim Yesterday As DateTime = DateTime.Today.AddDays(-1)



<b>Edit:</b> Nedanstående kod går inte att använda

If dag = DateTime.Now Then


eftersom <b>Now</b> returnerar ett nytt </b>DateTime</b> objekt. Du får iställer skapa <b>dag</b> som ett <b>DateTime</b> objekt där du skickar med ditt värde till konstruktorn.


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 13:55:30 - Magnus Jonsson

aha, då förstår jag :)
återkommer om det blir något problem, tack för hjälpen!


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 17:09:08 - Magnus Jonsson

Sådär. Nu har jag fått det att fungera. Det skulle vara snällt om du gav synpunkter på kod-snutten, om det går att göra på något smidigare sätt och om något onödigt är med i koden.

<code>
Sub sida_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles sida.ItemDataBound

Dim item As ListItemType = e.Item.ItemType
Dim lblDatum As Label
Dim Datum As Object
Dim Today As DateTime = DateTime.Today
Dim Yesterday As DateTime = DateTime.Today.AddDays(-1)

Datum = e.Item.DataItem("Datum")
lbldatum = CType(e.Item.FindControl("datum"), Label)

If datum > Today Then
lblDatum.Text = "Idag"
ElseIf datum > Yesterday Then
lblDatum.Text = "Igår"
Else
lblDatum.Text = ""& Datum.ToShortDateString() &""
End If

End Sub
</code>


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 18:36:49 - Andreas Håkansson

Magnus,


En del små funderingar fick jag faktiskt

[VB.NET]

If datum > Today Then


Här kollar du om <b>datum</b> är <b>större</b> än idag... skulle inte det bli allt från <b>imorgon</b> till <b>oändligheten</b> då? =)

[VB.NET]
ElseIf datum > Yesterday Then


Vad du gör här är att kolla om <b>datum</b> är större än <b>igår</b> vilket i princip betyder <b>idag</b> till <b>oändligheten</b>.

För att jämföra två <b>DateTime</b> objekt bör du använda den statiska <b>DateTime.Compare</b> metoden http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatetimeclasscomparetopic.asp

Hoppas det hjälper =)


Svara

Sv: Datum i olika former.

Postades av 2004-07-27 23:44:13 - Magnus Jonsson

aha. Ska kolla mer på det imorn, återkommer om jag inte får det att fungera eller nått.

Jadu, när jag körde sådär verkade det fungera iaf!


Svara

Sv: Datum i olika former.

Postades av 2004-07-28 00:39:28 - Johan Normén

Tja, du kan köra lite refactoring, Extract Method typ.

<code>
Sub sida_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles sida.ItemDataBound
Dim lblDatum As Label
lbldatum = CType(e.Item.FindControl("datum"), Label)
lblDatum.Text = GetDateStatusText(CType(e.Item.DataItem("Datum"),DateTime))
end sub
</code>

Du kan fixa till dim på samma rad som lbldatum = CTtyp... om du vill. m.m. Men jag valde att göra det mer läsbart.

<code>
Sub GetDateStatusText(date as DateTime) as String
if date = DateTime.Today then
return "Idag"
else if date = DateTime.Today.AddDays(-1) then
return "Igår"
else
return "Tidigare än igår"
end if
End Sub
</code>

SÅ har du fått ner koden en hel del, sedan kan du enkelt fylla på if satsen om du vill. Eller kanske to m. göra if till en case sats.

Mvh Johan


Svara

Sv: Datum i olika former.

Postades av 2004-07-28 12:59:14 - Magnus Jonsson

Undrar en grej hur man får ut Console.WriteLine till ett label.

Dim t1 As New DateTime(datum)

If DateTime.Compare(t1) = Today Then
Console.WriteLine("Idag")
ElseIf DateTime.Compare(t1) = Yesterday Then
Console.WriteLine("Igår")
Else Date.Time.Compare(t1) 'vad ska man ha för nån typ här? < eller?
Console.WriteLine("blablabla")
End If


Svara

Sv: Datum i olika former.

Postades av 2004-07-28 13:13:59 - Andreas Håkansson

Magnus,

Hmm nu vill jag inte alls vara oförskämd, men har du tittat i dokumentationen överhuvudtaget? För det första så <b>DateTime.Compare</b> returnerar <b>-1</b>, <b>0</b> eller <b>1</b> beroende på hur objekten förhåller sig tillvarandra .. vad som returnerar när, står i dokumentationen på länken jag gav dig.

Vidare är inte <b>CompareTo</b> en statiskmetod, dvs. inte en metod du kan anropa direkt på klassen utan som måste anropas på ett objekt. Vill du anropa en statisk metod får du använda <b>DateTime.Compare</b> som tar två <b>DateTime</b> objekt som parametrar.

Sen kan du till en viss del speka om </b>StandardInput</b> och <b>StandardOutput</b> på <b>Console</b> objektet men då detta är strömmar, samt att du inte har tillgån till <b>Console</b> från vare sig ASP.NET sidor eller WinForm applikationer så ser jag inte vitsen med det.. varför inte tilldela "Idag" direkt till <b>Text</b> på din label? Varför vill du gå via <b>Console.WriteLine</b> (som även lägger på en linebreak, så Write hade varit lämpligare om det funnits någon vits).

Läs igenom hur <b>CompareTo</b> och <b>Compare</b> fungerar så kommer du inte ha några problem med att sätta upp dina if-satser. =)

Hoppas det löser sig!


Svara

Sv: Datum i olika former.

Postades av 2004-07-30 13:37:50 - Magnus Jonsson

Jo jag hade tittat igenom den lite hastigt. Men nu har jag läst igenom den, och jag har kommit fram till den här kodsnutten som fungerar. Skulle vara snällt om du skrev vad som är dåligt osv.

<code>
If DateTime.Compare(Datum, Today) > 0 Then
lblDatum.Text = "Idag"
ElseIf DateTime.Compare(Datum, Yesterday) > 0 Then
lblDatum.Text = "Igår"
Else
lblDatum.Text = ""& Datum.ToShortDateString() &""
End If
</code>


Svara

Sv: Datum i olika former.

Postades av 2004-07-30 13:50:28 - Andreas Håkansson

Magnus,

Varför använder du <b>""&</b> och &""</b> när du tilldelar din lable i sista <b>Else</b>-satsen ? För övrigt ser det ok ut.. om det är kod du skall återanvända så refactora den enligt johans princip.


Svara

Sv: Datum i olika former.

Postades av 2004-07-30 14:03:39 - Magnus Jonsson

Vet faktiskt inte riktigt varför jag gör det, har lärt mig att göra det i asp och det har blivit en vana i asp, och det kanske är en ovana i asp.net.

Behöver man inte visa på nått sätt att det är "kod" som ska visas så det inte visas som text?


Svara

Sv: Datum i olika former.

Postades av 2004-07-30 14:12:18 - Andreas Håkansson

Magnus,

Vad du gör är att lägga till ingenting i början och slutet av datumet, inget annat. <b>Text</b> propertyn på en <b>Label</b> förväntar sig en <b>string</b> och inget annat, samt att <b>ToShortDateString</b> returnerar just en <b>string</b>-representation av datum objektet.


Svara

Sv: Datum i olika former.

Postades av 2004-07-30 14:20:46 - Magnus Jonsson

Okej, nu funkar det prima i alla fall. Tack för hjälpen!


Svara

Sv: Datum i olika former.

Postades av 2004-07-30 18:04:01 - Johan Normén

Magnus

Out of topic... Men...

Tänk oxå på att när du gör en & mellan strängar så tar det lite mer prestanda, då du skapar olika string objekt mellan varje &. (Vet ej exakt hur kompilatorn gör då den kan omptimera lite olika för hur din kod ser ut. )

"" = Ett string objekt.
& Datum... = Ett nytt
& "" = Ett till

Det kan se ut som du sätter ihop data till en sträng men i själva verket skapar du flera strängar,om du skall klistra ihop många strängar rekomenderar jag att du
kör med StringBuildern då den är byggd för att skapa upp olika stängbitar till en enda sträng.
(Fast observera undtantagsfall. Exemplet ovan är nog inte det bästa, då det skulle gå relativt snabbt i alla fall, där en stringbuilder ev skulle vart meningslöst. Men om du bygge rupp större strängar ha då StringBuildern i bakhuvudet. )

Mvh Johan


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 167
27 952
271 704
775
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies