Exemplo n.º 1
0
    public void PredictByAmount(string month, string year, Structs.DataCollection loadedData)
    {
        int   idx_now         = gameManager.MonthToInt[month.ToLower()];
        float lastFoundAvg    = GetFirstAverage(idx_now, loadedData);
        float calcTotal       = 0;
        int   count           = 0;
        int   predictionMonth = 0;
        int   y = 0;

        while (calcTotal <= desiredTotal)
        {
            int realCount = idx_now + count;
            y = 0;
            while (realCount > 11)
            {
                realCount -= 12;
                y++;
            }

            if (loadedData.MonthAverages[realCount] != 0)
            {
                lastFoundAvg = loadedData.MonthAverages[realCount];
            }
            predictionMonth = realCount;
            calcTotal      += lastFoundAvg;
            count++;
        }

        //int y = count / 12;
        //int m = count - y * 12;
        string myKey = gameManager.MonthToInt.FirstOrDefault(x => x.Value == predictionMonth).Key;

        amountAnswerTxt.text = myKey + " / " + (int.Parse(year) + y).ToString();
    }
Exemplo n.º 2
0
 public void CheckIfThereIsDictionaryInData(Structs.DataCollection loadedData)
 {
     if (loadedData.MonthAverages == null || loadedData.MonthAverages.Count == 0)
     {
         loadedData.MonthAverages = new List <float>();
         for (int i = 1; i < 13; i++)
         {
             loadedData.MonthAverages.Add(0);
         }
         gameManager.SaveData();
     }
 }
Exemplo n.º 3
0
 void Start()
 {
     nav             = GetComponent <Navigation>();
     listMngr        = listPanel.GetComponent <ListManager>();
     welcomeNewMonth = GetComponent <NewMonth>();
     curMonth        = DateTime.Now.ToString("MMMM");
     curYear         = DateTime.Now.Year.ToString();
     loadedData      = LoadData();
     GetComponent <Predictions>().CheckIfThereIsDictionaryInData(loadedData);
     CheckForCurMonth();
     monthButton.GetComponentInChildren <Text>().text = curMonth + " " + curYear;
     if (loadedData.Data.Count > 0)
     {
         selectedMonth = loadedData.Data[loadedData.Data.Count - 1];
     }
     BalanceButton();
 }
Exemplo n.º 4
0
 void CreateNewData()
 {
     loadedData = new Structs.DataCollection();
     loadedData.MonthAverages = new List <float>();
     for (int i = 1; i < 13; i++)
     {
         loadedData.MonthAverages.Add(0);
     }
     loadedData.Data = new List <Structs.MonthStats>();
     loadedData.Data.Add(new Structs.MonthStats()
     {
         month           = curMonth,
         year            = curYear,
         income          = new List <Structs.MoneyEntry>(),
         standarExpenses = new List <Structs.MoneyEntry>(),
         randomExpenses  = new List <Structs.MoneyEntry>()
     });
 }
Exemplo n.º 5
0
 Structs.DataCollection LoadData()
 {
     Debug.Log(Application.persistentDataPath);
     if (CheckJsonExistance())
     {
         string json = File.ReadAllText(Application.persistentDataPath + "/Data.json");
         loadedData = JsonUtility.FromJson <Structs.DataCollection>(json);
         tagList    = loadedData.TagList;
         //TODO remove
         //GetComponent<Predictions>().GetMonthAverage(loadedData);
         //Debug.Log(loadedData.Data[0].randomExpenses[1].inAvenrage);
         return(loadedData);
     }
     else
     {
         System.IO.File.WriteAllText(Application.persistentDataPath + "/Data.json", "");
         return(null);
     }
 }
Exemplo n.º 6
0
 float GetFirstAverage(int idx, Structs.DataCollection loadedData)
 {
     //check incase current month has 0 as average get the next month that does not
     if (loadedData.MonthAverages[idx] == 0)
     {
         for (int i = idx; i < 12; i++)
         {
             if (loadedData.MonthAverages[i] != 0)
             {
                 return(loadedData.MonthAverages[i]);
             }
             if (i == 11)
             {
                 i = -1;
             }
         }
     }
     return(0);
 }
Exemplo n.º 7
0
    public void PredictByDate(string month, string year, Structs.DataCollection loadedData)
    {
        //write code for prediction. This is called after we close calendar
        calendarButton.GetComponentInChildren <Text>().text = month + " " + year;
        int idx_now   = gameManager.MonthToInt[DateTime.Now.ToString("MMMM").ToLower()];
        int idx_then  = gameManager.MonthToInt[month.ToLower()];
        int year_now  = int.Parse(DateTime.Now.Year.ToString());
        int year_then = int.Parse(year);

        int monthYears = (year_then - year_now) * 12;
        int monthSolo  = idx_then - idx_now;

        int   totalMonths     = monthYears + monthSolo;
        float predictionTotal = 0;
        int   count           = 0;
        float lastFoundAvg    = GetFirstAverage(idx_now, loadedData);

        while (count < totalMonths)
        {
            int realCount = idx_now + count;
            while (realCount > 11)
            {
                realCount -= 12;
            }

            if (loadedData.MonthAverages[realCount] != 0)
            {
                lastFoundAvg = loadedData.MonthAverages[realCount];
            }

            predictionTotal += lastFoundAvg;
            count++;
        }
        //fail safe if you choose the current month and program does do in the while loop above
        if (predictionTotal == 0)
        {
            predictionTotal = lastFoundAvg;
        }

        answerTxt.text = "Predicted balance : " + predictionTotal.ToString();
    }
Exemplo n.º 8
0
    public void GetMonthAverage(Structs.DataCollection loadedData, string month)
    {
        if (gameManager == null)
        {
            Start();
        }

        int idx = gameManager.MonthToInt[month.ToLower()];

        List <Structs.MonthStats> ls = loadedData.Data.Where(x => x.month.ToLower() == month.ToLower()).ToList();
        float total = 0;

        foreach (Structs.MonthStats item in ls)
        {
            total += item.avgBalance;
        }
        float avg = total / ls.Count;

        loadedData.MonthAverages[idx] = avg;
        gameManager.SaveData();
    }