Avatar billede steensommer Praktikant
17. februar 2011 - 20:14 Der er 5 kommentarer og
1 løsning

Runtime error

Hej
VB .Net
Tidligere har følgende alders funktion fungeret udmærket men nu får jeg følgende fejl:
Indekset og længden skal referere til en placering i strengen
Parameternavn: length

Kode:
  Function Age(ByVal s As String) As Integer

        Try
            Dim birthday As DateTime = DateTime.ParseExact(s.Substring(0, 6), "ddMMyy", CultureInfo.InvariantCulture)
            Dim today As DateTime = DateTime.Now
            Dim n As Integer
            If Now.Month > birthday.Month Or (Now.Month = birthday.Month And Now.Day >= birthday.Day) Then
                n = today.Year - birthday.Year
            Else
                n = today.Year - birthday.Year - 1
            End If
            n = (n + 100) Mod 100
            Return n

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Function
Avatar billede misbruger Nybegynder
17. februar 2011 - 20:24 #1
fordi den dato du sender til metoden ikke er ddMMyy
substring tager fra start (0) til length (6), og der er ikke 6 karaktere i den streng du sender til metoden.
Avatar billede steensommer Praktikant
17. februar 2011 - 20:27 #2
MEN den har fungeret indtil for få dage siden! Hvordan kan det så løses?
Avatar billede arne_v Ekspert
18. februar 2011 - 00:49 #3
Hvad er der lavet om for få dage siden?
Avatar billede steensommer Praktikant
18. februar 2011 - 06:38 #4
INTET hvilket er det mystiske.
Koden bliver primært anvendt ved åbning af en form hvor den fungerer fint og siden med sekunders mellemrum kaldt vha af en timer ...HER FEJLER DEN
Avatar billede steensommer Praktikant
18. februar 2011 - 06:39 #5
Fejlen kommer allerede her:

Dim birthday As DateTime = DateTime.ParseExact(s.Substring(0, 6), "ddMMyy", CultureInfo.InvariantCulture)
Avatar billede steensommer Praktikant
18. februar 2011 - 10:15 #6
Hmmm

Jeg fandt ud af problemet som opstod når en anden kode tømte cpr-feltet hvilket udløste fejl i ovenstående kode.
Det forklarer dog ikke helt hvorfor det tidligere fungerede men pyt. Derfor accepteres "misbruger"'s løsning :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester