webForumDet fria alternativet

datumfunktion

.NET

4 svar · 280 visningar · startad av Mika3l

Medlem sedan nov. 20018 492 inlägg
Frågan#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

Medlem 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 !

Medlem 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

Medlem 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.
Medlem 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

270 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)