none
Retornar seis últimos meses em uma lista RRS feed

  • Pergunta

  • Boa noite pessoal!!

    estou desenvolvendo uma aplicação em ASP.Net MVC C# Engine Razor, nela crio um gráfico demonstrativo de vendas do último semestre, porém não estou conseguindo trazer os meses de maneira correta, precisava trazer da seguinte forma: 

    Começando pelo mês atual e regredindo até seis meses atrás, (Fevereiro, Janeiro, Dezembro, Novembro, Outubro, Setembro), exatamente nessa ordem.

    Abaixo segue uma imagem da lista que criei no Controller e uma imagem do gráfico montado na View

    Controller com a lista de meses

    View

    Gráfico com as labels dos meses

    Gostaria de ajuda para executar essa tarefa, algum tutorial, sugestão...

    Agradeço desde já.

    quarta-feira, 1 de fevereiro de 2017 20:29

Respostas

  • Bom dia pessoal, consegui resolver meu problema.

    Segue abaixo para quem possa precisar:

    List<string> Lista = new List<string>();
    
                for (int i = 0; i <= 6; i++)
                {
                    Lista.Add(DateTime.Now.AddMonths(-i).ToString("MM/yyyy"));
                }
    
                ViewBag.Meses = Lista;
    
                return View();

    quinta-feira, 2 de fevereiro de 2017 13:50

Todas as Respostas

  • Bom dia pessoal, consegui resolver meu problema.

    Segue abaixo para quem possa precisar:

    List<string> Lista = new List<string>();
    
                for (int i = 0; i <= 6; i++)
                {
                    Lista.Add(DateTime.Now.AddMonths(-i).ToString("MM/yyyy"));
                }
    
                ViewBag.Meses = Lista;
    
                return View();

    quinta-feira, 2 de fevereiro de 2017 13:50
  • Reivert,

    tenta fazer dessa forma cara.

                CultureInfo culture = new CultureInfo("pt-BR");
                DateTimeFormatInfo dtfi = culture.DateTimeFormat;
    
                List<string> Lista = new List<string>();
    
                for (int i = 0; i < 6; i++)
                {
                    DateTime data = DateTime.Now.AddMonths(-i);
    
                    Lista.Add(string.Concat(culture.TextInfo.ToTitleCase(dtfi.GetMonthName(data.Month)), " ", data.Year));
                }


    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quinta-feira, 2 de fevereiro de 2017 16:49
  • Obrigado pela resposta Diego, mas consegui resolver essa questão.

    Para mostrar o nome do mês, não precisei nem usar o CultureInfo, apenas passei dessa forma

    Lista.Add(DateTime.Now.AddMonths(-i).ToString("MMMM"));

    Retornou o que eu esperava, e uso o operador <= para me retornar o mês atual mais os seis meses anteriores, passei errado a informação no título da Thread, desculpa.

    Mais uma vez obrigado.

    quinta-feira, 2 de fevereiro de 2017 19:53
  • legal,

    não esquece de fechar a thread .


    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quinta-feira, 2 de fevereiro de 2017 20:43