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


Är en viss dag en helgdag?

Postades av 2006-06-19 11:43:49 - Mikael Palmblad, i forum c# (c-sharp), Tråden har 2 Kommentarer och lästs av 1907 personer

Jag skulle behöva veta om en viss dag är en svensk helgdag eller inte om jag t ex anger ett datum.

Finns det någon färdig klass som räknar ut detta? Kan man kanske använda sig av outlook för att hämta ett värde?

Tacksam för svar.


Svara

Sv: Är en viss dag en helgdag?

Postades av 2006-06-19 15:00:12 - Samuel Eriksson

Jag har några funktioner skrivet i vb.net. Inte så jättesnyggt då jag använt mig av strängar istället för datum. Hoppas det kan vara till någon nytta ändå.

    Private Function Nyårsdagen(ByVal strYear As String) As String
        Nyårsdagen = strYear + "-01-01"
    End Function

    Private Function Trettondagen(ByVal strYear As String) As String
        Trettondagen = strYear + "-01-06"
    End Function

    Private Function Långfredagen(ByVal strYear As String) As String
        Dim datePåskdagen As Date
        datePåskdagen = CDate(Påskdagen(strYear))
        Långfredagen = DateAdd("d", -2, datePåskdagen)
    End Function

    Private Function Påskdagen(ByVal strYear As String) As String
        Dim strDay As String
        Dim y, g, c, x, z, d, e, n, p
        y = CDbl(strYear)
        g = (y Mod 19) + 1
        c = Int((y / 100) + 1)
        x = Int((3 * c / 4) - 12)
        z = Int(((8 * c + 5) / 25) - 5)
        d = Int((5 * y / 4) - x - 10)
        e = (11 * g + 20 + z - x) Mod 30
        If e = 25 And g > 11 Or e = 24 Then e = e + 1
        n = 44 - e
        If n < 21 Then n = n + 30
        p = n + 7 - ((d + n) Mod 7)
        If p > 31 Then
            strDay = CStr(p - 31)
            If Len(strDay) = 1 Then strDay = "0" + strDay
            Påskdagen = strYear + "-04-" + strDay
        Else
            Påskdagen = strYear + "-03-" + CStr(p)
        End If
    End Function

    Private Function AnnandagPåsk(ByVal strYear As String) As String
        Dim datePåskdagen As Date
        datePåskdagen = CDate(Påskdagen(strYear))
        AnnandagPåsk = DateAdd("d", 1, datePåskdagen)
    End Function

    Private Function FörstaMaj(ByVal strYear As String) As String
        FörstaMaj = strYear + "-05-01"
    End Function

    Private Function KristiHimmelsfärdsdagen(ByVal strYear As String) As String
        Dim datePåskdagen As Date
        datePåskdagen = CDate(Påskdagen(strYear))
        KristiHimmelsfärdsdagen = DateAdd("d", 39, datePåskdagen)
    End Function

    Private Function Nationaldagen(ByVal strYear As String) As String
        Nationaldagen = strYear + "-06-06"
    End Function

    Private Function Midsommarafton(ByVal strYear As String) As String
        'Midsommarafton infaller alltid Fredagen mellan den 19-25 juni.
        Dim i As Byte
        Dim loopdatum
        loopdatum = strYear & "-06-19"
        For i = 19 To 25
            If Weekday(strYear + "-06-" + CStr(i), vbMonday) = 5 Then
                Midsommarafton = strYear + "-06-" + CStr(i)
                Exit For
            End If
        Next i
    End Function

    Private Function Julafton(ByVal strYear As String) As String
        Julafton = strYear + "-12-24"
    End Function

    Private Function Juldagen(ByVal strYear As String) As String
        Juldagen = strYear + "-12-25"
    End Function

    Private Function AnnandagJul(ByVal strYear As String) As String
        AnnandagJul = strYear + "-12-26"
    End Function

    Private Function Nyårsafton(ByVal strYear As String) As String
        Nyårsafton = strYear + "-12-31"
    End Function



I de fall då man vill veta ifall det är en lördag eller söndag kan man göra så här:

     If datDate.DayOfWeek = DayOfWeek.Saturday Then Return True
     If datDate.DayOfWeek = DayOfWeek.Sunday Then Return True


Svara

Sv:Är en viss dag en helgdag?

Postades av 2006-06-19 22:30:05 - Peter Sandberg

Hej!
Jag har följande kod:
(tar tacksamt emot synpunkt på förbättringar etc)


public static bool IsHoliday(DateTime D,out string strDayName)
{

//Kolla om det angivna datumet är en helgdag
strDayName = "";

if (D.Month == 1 && D.Day == 1)
{
strDayName = "Nyårsdagen";
return true;
}

if (D.Month == 1 && D.Day == 6)
{
strDayName = "Trettondagen";
return true;
}



//************************************************************************
//
// De som har med påsk att göra...
//


if (D == EasterDay(D.Year).AddDays(-2))
{
strDayName = "Långfredag";
return true;
}

if (D == EasterDay(D.Year))
{
strDayName = "Påskdagen";//' Påskdagen - iofs alltid på en söndag...
return true;
}

if (D == EasterDay(D.Year).AddDays(1))
{
strDayName = "Annandag påsk";
return true;
}


if (D == EasterDay(D.Year).AddDays(39))
{
strDayName = "Kristi himelsfärd";
//return false;//Är inte längre helgdag;
return true;
}

if (D == EasterDay(D.Year).AddDays(50))
{
strDayName = "Annandag pingst";
if (D.Year >= 2005)
return false;//Är inte längre helgdag
else
return true;
}


//*************************************************************************

if (D.Month == 5 && D.Day == 1)
{
strDayName = "1:a Maj";
return true;
}

if (D.Month == 6 && D.Day == 6)
{
strDayName = "Nationaldagen";

if (D.Year >= 2005)
return true;//Är nu helgdag
else
return false;

}

// Midsommarafton fredag 19-25 juni, Midsommardagen lördag 20-26 juni
// Tveksamt om midsommarafton är en helgdag...
if (D.Month == 6)
{
if (D.Day >= 19 && D.Day <= 25 && (int)D.DayOfWeek == 5)
{
strDayName = "Midsommarafton";
return true;
}

if (D.Day >= 20 && D.Day <= 26 && (int)D.DayOfWeek == 6)
{
strDayName = "Midsommarafton";
return true;
}
}


if (D.Month == 12 && D.Day == 24)
{
strDayName = "Julafton";
return true;
}


if (D.Month == 12 && D.Day == 26)
{
strDayName = "Annandag jul";
return true;
}


// Alla Helgons Dag lördag 31 okt - 6 nov
if (D.Month == 10)
{
if (D.Day >= 31 && (int)D.DayOfWeek == 6)
{
//Är en Lördag
strDayName = "Alla Helgons dag";
return true;
}
}
else if (D.Month == 11)
{
if (D.Day <= 6 && (int)D.DayOfWeek == 6)
{
strDayName = "Alla Helgons dag";
return true;
}
}

return false;
}


public static DateTime EasterDay(int iYear)
{
// Räkna ut vilken dag påskdagen infaller det angivna året (4 siffror, t.ex. 2001)
int Y = 0;
int iDay = 0;
int iMonth = 0;
int A,b,C,D,E;
DateTime Datum = new DateTime();

Y = iYear;
if (Y < 100) Y = Y + 1900;

if (Y < 1950) Y = Y + 100;


A = Y % 19;

b = Y % 4;
C = Y % 7;
D = (19 * A + 24) % 30;
E = ((2 * b) + (4 * C) + (6 * D) + 5) % 7;
iDay = 22 + D + E;
if (iDay == 57) iDay = iDay - 7;
if (iDay == 56 && D == 28 && E == 6 && A > 10) iDay = iDay - 7;

if (iDay > 31)
{
iDay = iDay - 31;
iMonth = 4;
}
else
{
iMonth = 3;
}


Datum = DateTime.Parse((iYear % 100) +"-"+iMonth.ToString() + "-" + iDay.ToString());

return Datum;
}


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 170
27 953
271 705
704
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