webForumDet fria alternativet

datumfunktion

4 svar · 278 visningar · startad av Mika3l

Mika3lMedlem sedan nov. 20018 492 inlägg
#1

Sitter och försöker få till en funktion som räknar ut hur många är jag är.

Jag har försökt men inte fått det att fungera med Integer osv.

<% @ Page Language="VB" %>

<script runat="server">
Sub Page_Load(Obj As Object, E As Eventargs)
Dim fdatum = 1988-02-26
Dim ar = year(now())
Dim datum = now()
If ar = 2002 AND fdatum > datum Then
lblAlder.Text = "14"
ElseIf ar = 2003 AND fdatum < datum Then
lblAlder.Text = "14"
ElseIf ar = 2003 AND fdatum > datum Then
lblAlder.Text = "15"
ElseIf ar = 2004 AND fdatum < datum Then
lblAlder.Text = "15"
ElseIf ar = 2003 AND fdatum > datum Then
lblAlder.Text = "16"
End If
End Sub
</script>
<html>
<head>
<title></title>
</head>
<body>

<asp:label id="lblAlder" runat="server"/>

</body>
</html>

Finns det något bättre sätt att göra på?

Nu får jag bara felmeddelanden som säger att jag kan prova med att lägga till Debug="true" men då får jag bara felmeddelandet: System.InvalidCastException: Operator is not valid for type 'Integer' and type 'Date'. på rad If ar = 2002 AND fdatum > datum Then.

Tacksam för lite hjälp!

/Mika3l

TobbsterMedlem sedan mars 2001309 inlägg
#2

Felet du får är ett typblandnings fel.......

Du försöker gemföra typen datum med typen integer !!

Du är tvungen att typ casta om din Fdate eller deklarera den som typen datum från början !

Föresten skulle det ju gå att göra på ett smartare sätt !

Om du sätter Fdate till typen datum och använder funktionen datediff så får du ut diffen mellan datumen. Utav det skulle du sedan kunna skriva en funktion som räknar ut åldern !

Mika3lMedlem sedan nov. 20018 492 inlägg
#3

Hmmm...
Nu är det ju så att jag inte är så bra på ASP.NET ännu... :stud

Jag får väl försöka någon annan gång när jag är lite bättre. :)

/Mika3l

NETworkMedlem sedan juni 20011 732 inlägg
#4

Det här med datatyper är väldigt grundläggande i programmering och det är inte så svårt, det har dock inget med asp.net att göra utan hör till logiken i det programmeringsspråk du använder.

Ta två enkla datatyper, en sträng och en integer. En sträng består av ett antal tecken, en integer består av siffror. En sträng kan innehålla en siffra, men du kan ändå inte plussa ihop den siffran med en integer eftersom det är en annan datatyp. Då måste du först göra om strängen innehållande en siffra till en integer, därefter kan du plussa ihop de båda talen.

Exempel:

int + string = fel!
int + int = OK! Exempel 1 + 2 = 3
string + string = OK! Exempel 1 + 2 = 12

Samma sak gäller datum. Du kan inte blanda datatypen datum med integer, du måste först konvertera int till date. Vet inte hur det ser ut i vb exakt, men ett exempel i c#:

//Exempelvis så här:
string myString = "1";
int myInt = Convert.ToInt32(myString); //finns olika slags integers, int32 kan innehålla 32 bitar stort tal.
Mika3lMedlem sedan nov. 20018 492 inlägg
#5

Jo man kan ju konvertera på olika sätt.
T.ex Dim nummer As Integer = Asc(ord).

/Mika3l

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)