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


veckans nöt #10

Postades av 2004-11-30 19:09:47 - Pelle Johansson, i forum systemutveckling generellt, Tråden har 10 Kommentarer och lästs av 1362 personer

Ditt företag skall bygga en rutin men med ett främmande programspråk som ingen kan och ingen har manualen till. Programspråket är lika uråldrigt som gw-basic och därmed kan du inte använda många av de datumfunktioner du så väl hade behövt nu.

Chefen ber dig därför skriva en funktion som räknar ut vilken veckodag samt veckonummer som avser datumet 2004-03-28. Du måste även hålla reda på skottår, kolla att veckan blir rätt oavsett år mm.

<info>
Du får alltså inte använda några som helst färdiga funktioner för detta utan måste förlita dig på ord som "gregorian och julian-date algoritmer" samt skottår och inte minst "minst 4 dagar i första veckan".
</info>

Programspråk är valfritt - Lycka till.


Svara

Sv: veckans nöt #10

Postades av 2004-12-01 07:19:25 - Roger Alsing

hur ska vi kunna det när vi inte har manualen till språket?

jag får bara compile error hela tiden... hjääälp


Svara

Sv:veckans nöt #10

Postades av 2004-12-01 09:03:45 - Pelle Johansson

Ja, Chefen säger att givetvis får systemklockan användas. Det bör väl tilläggas enligt roggans inlägg. Givetvis har du ett eget program som du kan använda, men bara för att skriva logiken, du kan alltså inte använda dig av några inbyggda objekt för timer.


Svara

Sv: veckans nöt #10

Postades av 2004-12-01 09:30:38 - Martin Adrian

Tog algoritmerna från boost::date_time eller är det fusk?
(koden lite modifierad för att passa här)
<code>
bool is_leap_year(int year) {
//divisible by 4, not if divisible by 100, but true if divisible by 400
return (!(year % 4)) && ((year % 100) || (!(year % 400)));
}

int julian_day_number(int year, int month, int day) {
int a = (14-month)/12;
int y = year + 4800 - a;
int m = month + 12*a - 3;
return = day + ((153*m + 2)/5) + 365*y + (y/4) - (y/100) + (y/400) - 32045;
}

int week_number(int year, int month, int day) {
unsigned long julianbegin = julian_day_number(year,1,1);
unsigned long juliantoday = julian_day_number(year, month, day);
unsigned long dday = (julianbegin + 3) % 7;
unsigned long week = (juliantoday + dday - julianbegin + 4)/7;

if ((week >= 1) && (week <= 52)) return week;

if ((week == 53)) {
if((dday==6) ||(dday == 5 && is_leap_year(year))) {
return week; //under these circumstances week == 53.
} else {
return 1; //monday - wednesday is in week 1 of next year
}
}
//if the week is not in current year recalculate using the previous year as the beginning year
else if (week == 0) {
julianbegin = julian_day_number(ymd.year-1,1,1);
juliantoday = julian_day_number(year, month, day);
dday = (julianbegin + 3) % 7;
week = (juliantoday + day - julianbegin + 4)/7;
return week;
}
return week; //not reachable -- well except if day == 5 and is_leap_year != true
}

// 0=sunday, 1=monday etc
int day_of_week(int year, int month, int day) {
unsigned a = (14-ymd.month)/12;
unsigned y = year - a;
unsigned m = month + 12*a - 2;
return (day + y + (y/4) - (y/100) + (y/400) + (31*m)/12) % 7;
}

main() {
static const char* dayname[7] = { "söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag" };
int week = week_number(2004,3,28);
int day = day_of_week(2004,3,28);
cout << "2004-03-28 är vecka " << week << " och är en " << dayname[day] << std::endl;
}
</code>

Edit glömde veckodagen


Svara

Sv: veckans nöt #10

Postades av 2004-12-01 14:50:38 - Roger Alsing

Chefen ber dig därför skriva en funktion som räknar ut vilken veckodag samt veckonummer som avser datumet 2004-03-28.


int GetVeckoNummer20040328()
{
return 13;
}

string GetVeckDag20040328()
{
return "söndag"
}


//Roger


Svara

Sv:veckans nöt #10

Postades av 2004-12-01 16:39:43 - Per Persson

Där har vi en som läser frågan ordentligt! Så skall det se ut... :-D


Svara

Sv:veckans nöt #10

Postades av 2004-12-02 00:05:46 - Andreas Håkansson

Klockren Roggan! =)


Svara

Sv: veckans nöt #10

Postades av 2004-12-02 08:11:10 - Johan Bovin

Skönt att få börja dagen med ett riktigt gapflabb... tack som fan Roggan


Svara

Sv:veckans nöt #10

Postades av 2004-12-04 23:49:01 - Daniel Kihlgren

Mycket fin lösning


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 570 786
27 960
271 761
733
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