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


Datumvalidering på servern

Postades av 2008-05-09 08:46:54 - Stefan Sunnerheim, i forum asp.net generellt, Tråden har 4 Kommentarer och lästs av 898 personer

Tjena!
Har en webbapplikation där jag behöver validera datum som slås in av användaren via en textbox. Användarna kan ha olika Culture. Jag gör alla valideringar på servern.
Idag validerar jag genom att göra en try catch runt Convert.ToDateTime(txtBox).
Problemet med detta är att den tvingar användaren att skriva in datum med separatorer mellan år och månad samt mellan månad och dag (T.ex 2008-12-01 eller 08-12-01 för en svenk). Jag skulle vilja att användaren kan skriva datumen i formatet 081201, 08-12-01, 20081201 eller 2008-12-01.
Någon som löst detta på ett bra sätt?


Svara

Sv: Datumvalidering på servern

Postades av 2008-05-09 10:19:10 - Mikael Johansson

Du kan titta på denna vilket jag tror är det närmaste du vill ha.

http://www.codeguru.com/csharp/.net/net_general/netframeworkclasses/article.php/c7547/


Svara

Sv: Datumvalidering på servern

Postades av 2008-05-09 11:04:26 - Martin Adrian

Använd DateTime.TryParseExact.

Då kan du skicka med en array som beskriver vilka format som stöds.

Ungefär så här för svensk culture.

string [] formats = new string [] {
"yy-MM-dd",
"yyyy-MM-dd",
"yyMMdd",
"yyyyMMdd"
};
DateTime d;
valid = DateTime.TryParseExact(str, formats, out d);

(skall vara några fler paramtrar men de kan du hitta i hjälpen)


Svara

Sv:Datumvalidering på servern

Postades av 2008-05-12 09:52:27 - Magnus Karlsson


Får fel på denna ....

<code>
valid = DateTime.TryParseExact(str, formats, out d);
</code>

"out d" ?


Svara

Sv:Datumvalidering på servern

Postades av 2008-05-12 10:55:11 - Stefan Sunnerheim

Tack för svaret Hans!
Du fick mig in på rätt spår.
Skrev om den kod som du föreslog enligt nedan.

IsDate kontrollerar om en sträng är ett gilltigt datum. Först kör jag Convert.ToDateTime(s). Den går fint om man skrivit datumet i formatet med separatorer, t.ex yyyy-MM-dd eller yy-MM-dd.
Om strängen inte klarar detta test så testar jag om man skrivit i formatet yyyyMMdd eller yyMMdd, dvs. utan separatorer. Det görs med hjälp av DateTime.ParseExact och olika date patterns. Jag tar trådens culture´s DateTimeFormatInfo object o tar bort separatorerna från ShortDatePattern o försöker matcha med ParseExact.

Min kod ser ut så här nu:

Protected Function IsDate(ByVal s As String) As Boolean
Try
Convert.ToDateTime(s)
Return True
Catch

End Try

Try
ControlDateWithCulturePattern(s)
Return True
Catch
Return False
End Try
End Function

Private Function ControlDateWithCulturePattern(ByVal datum As String) As Date
Dim dtfi As System.Globalization.DateTimeFormatInfo
Dim currentDTFI As System.Globalization.DateTimeFormatInfo
Dim dt As DateTime

currentDTFI = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat

If datum.Length = 8 Then
' yyyyMMdd-format

dtfi = New System.Globalization.DateTimeFormatInfo()
dtfi.ShortDatePattern = currentDTFI.ShortDatePattern.Replace(currentDTFI.DateSeparator, "")
dt = DateTime.ParseExact(datum, "d", dtfi)
ElseIf datum.Length = 6 Then
' yyMMdd-format
dtfi = New System.Globalization.DateTimeFormatInfo()
dtfi.ShortDatePattern = currentDTFI.ShortDatePattern.Replace(currentDTFI.DateSeparator, "").Replace("yyyy", "yy") '
dt = DateTime.ParseExact(datum, "d", dtfi)
End If

Return dt
End Function


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 166
27 952
271 704
774
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