Skip to content
This repository has been archived by the owner on Feb 24, 2019. It is now read-only.

JulianDate #35

Closed
emlun opened this issue Nov 5, 2014 · 1 comment
Closed

JulianDate #35

emlun opened this issue Nov 5, 2014 · 1 comment
Assignees
Milestone

Comments

@emlun
Copy link
Collaborator

emlun commented Nov 5, 2014

  • Implementation av basklassens virtuella funktioner vid behov
  • Konstruktor som tar år, månad, dag som int.
  • Man ska kunna kopiera och tilldela dateobjekt. Skillnaden mellan datumen
    ska vara noll efter tilldelning/kopiering.
  • DONE: (6ec8511) postfix-operatorer ++ och -- som returnerar kopia av sig själv.
  • Konstruktion utan argument (defaultkonstruktorn) ger dagens datum. För
    att få dagens datum ska du inte använda systemanrop direkt utan gå via en
    speciell funktion, se filen kattistime.h på kurskatalogen.
  • Korrekt hantering av skottår. I den julianska är det vart fjärde år. I den
    Gregorianska kalendern infaller skottdagen vart fjärde år men utgår de
    sekelårtal som inte är jämnt delbara med 400.
  • DONE (72b961f, f27f61e) Utskriftsoperatorn ska definieras och skriva ut datumet på formen
    YYYY-MM-DD där ental fylls ut med nollor (2000-01-01).
  • add_month ska ge samma datum i nästa månad men om det inte går så
    ska det plussas på 30 dagar istället. Exempel 1/9 -> 1/10 och 31/5 -> 30/6. Den 31/1 kan bli 1:a eller 2:a mars beroende på om det är skottår.
  • För skottdagen ska add_year ge sista februari: 29/2 2004 -> 28/2 2005.
    Anropar man add_year den 29/2 först med 1 och därefter med -1 så ska man
    hamna på 28/2. Lägger man till fyra år till skottdagen ska man hamna på
    skottdagen igen om det nu är skottår då: 29/2 2004 -> 29/2 2008. Hade man
    istället lagt till ett år i taget hade man hamnat på den 28:e
  • Anropar man add_month med argumentet 5 så ska det vara ekivivalent
    med om man gör add_month 5 gånger. Motsvarande gäller inte alltid för
    add_year se ovan.
  • Försöker man komma åt eller skapa ogiltiga dagar så ska out_of_range
    slängas.
  • Använd engelska namn med små bokstäver på dagar och månader. Var
    noga med stavningen.
  • Deklaration och implementation av klasserna ska skrivas i i separata header-
    respektive implementationsfiler (.h .cpp).

Alla implementationsdetaljer (exempelvis om du har en hjälpfunktion
leap_year()) ska döljas med protected eller private.

@emlun emlun added this to the Lab2 milestone Nov 5, 2014
emlun added a commit that referenced this issue Nov 5, 2014
Close #35 JulianDate
#35
@emlun
Copy link
Collaborator Author

emlun commented Nov 5, 2014

Implemented in 55dfd81

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants