Пример #1
0
 /// <summary>
 /// Método responsável por atribuir a data final que a meta será concluída, esta data não será modificada
 /// </summary>
 public void SetDataFim(MetasPorLivros meta, Livros livro)
 {
     if (PaginasDiarias > 0)
     {
         var dias = (livro.QuantidadePaginas / PaginasDiarias);
         DataFim = DateTime.Now.AddDays(dias);
     }
     else if (CapitulosDiarios > 0)
     {
         var dias = (livro.QuantidadeCapitulos / CapitulosDiarios);
         DataFim = DateTime.Now.AddDays(dias);
     }
 }
Пример #2
0
        /// <summary>
        /// Método responsável por calcular a data prevista de conclusão da meta, de acordo com as atualizações do usuário
        /// </summary>
        /// <param name="meta"></param>
        public void SetDataPrevista(MetasPorLivros meta, Livros livro)
        {
            var diferencaEntreDatas = DateTime.Now.Subtract(DataCadastro);
            var leituraEsperada     = diferencaEntreDatas.Days * PaginasDiarias;


            if (PaginasDiarias > 0)
            {
                if (PaginasOuCapitulosLidos < leituraEsperada)
                {
                    var diasEsperados = livro.QuantidadePaginas / PaginasDiarias;

                    var diasAtrasados = diasEsperados - ((livro.QuantidadePaginas - PaginasOuCapitulosLidos) / PaginasDiarias);

                    var dias = Math.Ceiling((double)diasAtrasados);

                    if (DataFim != null)
                    {
                        DataPrevista = DataFim.Value.AddDays(dias);
                    }
                }
                else
                {
                    var diasAdiantados = (livro.QuantidadePaginas - PaginasOuCapitulosLidos) / PaginasDiarias;
                    DataPrevista = DataCadastro.AddDays(diasAdiantados);
                }
            }
            else if (CapitulosDiarios > 0)
            {
                if (PaginasOuCapitulosLidos < leituraEsperada)
                {
                    var diasEsperados = livro.QuantidadeCapitulos / CapitulosDiarios;

                    var diasAtrasados = diasEsperados - ((livro.QuantidadeCapitulos - PaginasOuCapitulosLidos) / CapitulosDiarios);

                    var dias = Math.Ceiling((double)diasAtrasados);
                    if (DataFim != null)
                    {
                        DataPrevista = DataFim.Value.AddDays(dias);
                    }
                }
                else
                {
                    var diasAdiantados = (livro.QuantidadeCapitulos - PaginasOuCapitulosLidos) / CapitulosDiarios;
                    DataPrevista = DataCadastro.AddDays(diasAdiantados);
                }
            }
        }