示例#1
0
        //Opret postering
        public int OpretPostering(string beskrivelse, string beløb, string kategori, DateTime dato, bool erUdgift)
        {
            float int_beløb;

            beskrivelse = beskrivelse.Trim(' ');
            int_beløb   = Mathh.Round(Mathh.stringToFloat(beløb), 2);

            if (int_beløb <= 0)
            {
                return(1);   //Invalid beløb
            }
            else if (beskrivelse == "")
            {
                return(2);   //Invalid beskrivelse
            }
            else if (beskrivelse.Contains(";"))
            {
                return(3);   //brug af semicolon i beskrivelse
            }
            else
            {
                Postering postering = new Postering(beskrivelse, int_beløb, kategori, dato, erUdgift);
                posteringer.Add(postering);

                return(0);   //Intet galt
            }
        }
示例#2
0
        //Returnerer -1 hvis string er faulty
        public static float stringToFloat(string input)
        {
            //Variabler
            int    længde     = 0;
            bool   komma      = false;
            string tal        = "";
            float  PositivTal = 0;

            //Finder længde før komma og fjerner komma
            for (int i = 0; i < input.Length; i++)
            {
                if (input[i] == '.' || input[i] == ',')
                {
                    if (komma == true)
                    {
                        return(0);
                    }
                    komma = true;
                    continue;
                }
                else if (komma == false)
                {
                    længde++;
                }
                tal += input[i].ToString();
            }

            //Omdanner stringen til float ved at gå igennem hvert char
            for (int i = 0; i < tal.Length; i++)
            {
                switch (tal[i])
                {
                case '0':
                    break;

                case '1':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 1;
                    break;

                case '2':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 2;
                    break;

                case '3':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 3;
                    break;

                case '4':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 4;
                    break;

                case '5':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 5;
                    break;

                case '6':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 6;
                    break;

                case '7':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 7;
                    break;

                case '8':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 8;
                    break;

                case '9':
                    PositivTal += Mathh.Pot(10, længde - (i + 1)) * 9;
                    break;

                default:
                    return(0);
                }
            }
            return(PositivTal);
        }
示例#3
0
        public List <Postering> SøgPosteringer(List <string> tilladte_u_kat, List <string> tilladte_i_kat, List <string> tilladte_typer, string min, string max, int datoSearch, DateTime minDato, DateTime maxDato)
        {
            List <Postering> søgResultat = new List <Postering>();

            float i_min = Mathh.stringToFloat(min);
            float i_max = Mathh.stringToFloat(max);

            DateTime UgeStart = DateTime.Today;

            switch (DateTime.Now.DayOfWeek)
            {
            case DayOfWeek.Monday:
                break;

            case DayOfWeek.Tuesday:
                UgeStart = UgeStart.AddDays(-1);
                break;

            case DayOfWeek.Wednesday:
                UgeStart = UgeStart.AddDays(-2);
                break;

            case DayOfWeek.Thursday:
                UgeStart = UgeStart.AddDays(-3);
                break;

            case DayOfWeek.Friday:
                UgeStart = UgeStart.AddDays(-4);
                break;

            case DayOfWeek.Saturday:
                UgeStart = UgeStart.AddDays(-5);
                break;

            case DayOfWeek.Sunday:
                UgeStart = UgeStart.AddDays(-6);
                break;
            }



            //Cycle through all posteringer
            foreach (Postering postering in posteringer)
            {
                if (tilladte_typer.Contains("Udgift") && postering.erUdgift == true)
                {
                    if (!(tilladte_u_kat.Contains(postering.kategori)))
                    {
                        continue;
                    }
                }
                else if (tilladte_typer.Contains("Indtægt") && postering.erUdgift == false)
                {
                    if (!(tilladte_i_kat.Contains(postering.kategori)))
                    {
                        continue;
                    }
                }
                else
                {
                    continue;
                }
                if (postering.Pris < i_min && i_min != 0)
                {
                    continue;
                }

                if (postering.Pris > i_max && i_max != 0)
                {
                    continue;
                }
                switch (datoSearch)
                {
                //År
                case 1:
                    if (postering.dato.Year != DateTime.Now.Year)
                    {
                        continue;
                    }
                    break;

                //Måned
                case 2:
                    if (postering.dato.Month != DateTime.Now.Month || postering.dato.Year != DateTime.Now.Year)
                    {
                        continue;
                    }
                    break;

                //Uge
                case 3:
                    if (DateTime.Compare(postering.dato, UgeStart) < 0)
                    {
                        continue;
                    }
                    else if (DateTime.Compare(postering.dato, DateTime.Now) > 0)
                    {
                        continue;
                    }
                    break;

                //Dag
                case 4:
                    if (postering.dato.Day != DateTime.Now.Day ||
                        postering.dato.Month != DateTime.Now.Month ||
                        postering.dato.Year != DateTime.Now.Year)
                    {
                        continue;
                    }
                    break;

                //Specifikt
                case 5:
                    if (DateTime.Compare(postering.dato, maxDato) > 0)
                    {
                        continue;
                    }
                    else if (DateTime.Compare(postering.dato, minDato) < 0)
                    {
                        continue;
                    }
                    break;
                }

                søgResultat.Add(postering);
            }

            return(søgResultat);
        }
示例#4
0
 //Omdanner en gemt string til et Posteringsobjekt
 private Postering Unwrap(string input)
 {
     string[] args = input.Split(';');
     return(new Postering(args[0], Mathh.stringToFloat(args[1]), args[2], Convert.ToDateTime(args[3]), Convert.ToBoolean(args[4])));
 }