Console Applicatie Probleem

Status
Niet open voor verdere reacties.

kokkie20

Gebruiker
Lid geworden
4 aug 2006
Berichten
221
Hallo,
Ik weet dat je officieel hier geen huiswerk topics mag plaatsen, maar hoop dat jullie mij met een klein probleem kunnen helpen.
Ik ben bijna een jaar niet meer bezig geweest met programmeren en ga toch weer verder dus krijg weer allerlei opdrachten.
Alles lukt op 1 na en dat is deze opdracht:

Schrijf een programma dat alle jaren dat iemand geleefd heeft onder elkaar en alle maanden in de regel daarachter gescheiden door tabs. Gebruik een functie voor het schrijven van de maanden. Houd er ook rekening mee dat er in het geboortejaar en in het huidige jaar niet alle maanden mogen staan.
Dus ben zelf al bezig geweest met wat code om het te proberen maar het werkt nou juist net niet zoals ik het wil (Anders kom ik het ook hier niet vragen toch ;-))
Dan hierbij het probleem:

Ik krijg het al wel voor elkaar om alles onder elkaar te krijgen qua jaren.
Maar alleen de maanden doet hij niet zoals het moet.
Hij laat de maanden wel zien, maar als ik bijvoorbeeld in het jaar 1989 kijk, daar zet ik als voorbeeld het maand 2 neer.
Dan zou hij van februari t/m december moeten laten zien.
Maar op het moment dat hij bij jaar 1990 komt, laat hij weer februari t/m december zien.
En dit gaat de hele tijd zo door.
Heeft iemand misschien een enige tip/idee hoe ik dit probleem kan oplossen?
Hoef niet een complete oplossing, maar een hint richting wat ik moet veranderen/nakijken zou fijn zijn.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace Opdracht_3
{
    class Program
    {
        static void Main(string[] args)
        {
            int Maand;
            int Jaar;
            int huidigjaar = 0;
            int huidigmaand = 0;
            int totaaljaargeleefd;
            string jarengeleefd = "";

            Console.WriteLine("Wat is uw geboorte maand?");
            Maand = int.Parse(Console.ReadLine());

            Console.WriteLine("Wat is uw geboorte jaar?");
            Jaar = int.Parse(Console.ReadLine());

            huidigjaar = DateTime.Now.Year;
            huidigmaand = DateTime.Now.Month;

            totaaljaargeleefd = huidigjaar - Jaar + 1;
            Console.Clear();
            for (int i = 0; i < totaaljaargeleefd; i++)
            {
                jarengeleefd = jarengeleefd + Jaar.ToString() + "    " + SchrijfMaanden(Maand, Jaar, huidigmaand, huidigjaar) + "\n\r";
                Jaar++;
            }
            Console.WriteLine(jarengeleefd);
            Console.ReadLine();
        }

        static string SchrijfMaanden(int geboortemaand, int geboortejaar, int huidigemaand, int huidigejaar)
        {
            int AantalMaandenPerJaar = 12;
            int OvergeblevenMaanden = AantalMaandenPerJaar - geboortemaand;
            string Maandnaam = "";
            int Beginmaand = 1;

            if(

            for (int i = geboortemaand; i < 13; i++)
            {
                if (geboortemaand < OvergeblevenMaanden)
                {
                    Maandnaam = Maandnaam + "   " + CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i);
                }
                else
                {
                    
                }
            }

            string maanden = Maandnaam;

            return maanden;
        }
    }
}
 
Je kunt het ook iets anders aanpakken

maandcode (pseudo code)

Code:
Schrijfmaand (int start, int eind)
for (int i = start; i<(eind+1); i++)
 {
    //maandnaam code
 }

In je hoofdroutine:

Code:
print jaar
print schrijfmaand(maand,12)
for (int i = jaar+1; i < huidigjaar; i++)
 {
 print i
 print schrijfmaanden(1,12)
 }
print huidigjaar
schrijfmaand(1,huidigmaand)

de logica is dan veel eenvoudiger en je routine krijgt alleen de minimale informatie
 
Laatst bewerkt:
@Wampier
Damn en dan loop ik moeilijk te doen met zoveel code, gebruik een gedeelte van jou code en hij werkt ineens perfect T_T
Mag ik je hiervoor bedanken, zie nu wat ik fout gedaan heb, en weet nu ook gelijk hoe ik zo iets voor de volgende keer kan oplossen.
Nogmaals bedankt !!!!

@Frankwannet: Aah ok, ik kon me toen herinneren (kan het fout hebben!) dat je hier niet echt huiswerk mocht plaatsen ;) Is ook een tijd geleden dat ik het volgens mij ooit eens hier gedaan heb dus kan het 1 en ander vergeten zijn ;)
Maar mede dankzij wampier is het eindelijk opgelost :)
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan