Hej! Hittills har jag alltid använt reglerna : >En implementation av dessa regler i C# skulle kunna vara : Lol! Tack för den...hade ingen aning om att det fanns en sådan i .Net Framework. Eftersom den ligger på System.DateTime så måste den ju existera i VB.Net också...så kan det gå. får tacka och bocka... Har hamnat i asp3 träsket så det är gammalt hederligt javascript och vbscript som gäller i detta fall så det blir till att skriva egen kontroll i alla fall.. tackar tackar! ;)datum
Kanske inte riktigt helt rätt forum men jag hittar inget bättre så det får bli här ;)
Jag är på jakt efter vilka regler som gäller för datum. Tänkte för en gång skull göra en riktig datumkoll som kontrollerar så man inte anger den 31:e februari osv.
Där det blir problem nu är att jag inte har koll på hur man ska göra kontrollen för om det valda året är ett skottår eller inte. Någon som har koll på hur denna kontroll görs?
//KalleSv: datum
<info>
* Det är skottår om årtalet är jämt delbart med 4
* Undantag 1 (till ovanstående) : Det är INTE skottår om årtalet är jämt delbart med 100
* Undantag 2 (till undantag 1): Det ÄR skottår om årtalet är delbart med 400
</info>
En implementation av dessa regler i C# skulle kunna vara :
<code>
// 'Testcode
int year=int.Parse(textBox1.Text);
if (IsLeapYear(year))
MessageBox.Show("Yes!");
else
MessageBox.Show("No!");
return;
// 'Function : IsLeapYear; returns bool
public bool IsLeapYear(int year)
{
if (year%4!=0) return false;
if (year%100!=0) return true;
if (year%400!=0) return false;
return true;
}
</code>
Detta är ju enkelt att implementera i o f s men någon här på PelleSoft föreslog att man använder en redan implementerad funktion som VB:s IsDate-funktion. M a o i VB.Net-kod :
<code>
If IsDate("2004-02-29") Then
' 2004 är skottår
Else
' 2004 är EJ skottår
End If
</code>
Så länge IsDate fungerar korrekt så fungerar ju denna metod korrekt. Mycket enkelt att använda och komma ihåg jämför med reglerna ovan...Sv: datum
I C# skulle jag använda DateTime.IsLeapYear() istället för att skriva egen kod.
MSSv: datum
Jag hoppas ändå att mitt resonemang ovan kan ge inblick i logiken bakom en sådan funktion. Eftersom forumet var "Systemutveckling generellt" så kanske någon har nytta av det i ett annat programspråk till slut i alla fall :-)Sv: datum
//Kalle