コード例 #1
0
        public string AddHours(string datetime, long value)
        {
            date = new Datetime();

            int day = date.GetDay(datetime);

            int month = date.GetMonth(datetime);

            int year = date.GetYear(datetime);

            int hour = date.GetHours(datetime);

            int minute = date.GetMinutes(datetime);

            //Variavel de saída
            string datimeOutup = string.Empty;

            while (value != 0)
            {
                date = new Datetime().Month(month, year);

                hour++;

                if (hour == 24)
                {
                    //Mudou o dia
                    day++;
                    hour = 0;
                }

                if (day > date.LastDay)
                {
                    //Mudou o mes
                    day = 1;
                    month++;
                    hour = 0;
                }

                if (month == 13)
                {
                    //Mudou o ano
                    year++;
                    month = 1;
                    day   = 1;
                    hour  = 0;
                }

                value--;

                if (value == 0)
                {
                    return(string.Format("{0}/{1}/{2} {3}:{4}",
                                         day.ToString(), month.ToString(), year.ToString(), hour.ToString(), minute.ToString()));
                }
            }

            return(datetime);
        }
コード例 #2
0
        public void Start()
        {
            string datetime = string.Empty;

            while (datetime.ToLower() != "s")
            {
                Values values = new Values();

                if (string.IsNullOrEmpty(datetime))
                {
                    Console.WriteLine("Digite a data desejada abaixo no formato dd/mm/yyyy hh:mm");
                    datetime = Console.ReadLine();
                }

                //Inicio -> Validando data enviada pelo console
                Validate validate = new Validate().ValidateDatetimeString(datetime);
                while (!validate.IsValid)
                {
                    Console.WriteLine(validate.Message);
                    Console.WriteLine();
                    Console.WriteLine("Digite uma nova data abaixo: ");
                    datetime = Console.ReadLine();
                    validate.ValidateDatetimeString(datetime);
                }

                values.Datetime = datetime;

                ////Inicio -> Validando hora ou minutos
                Console.WriteLine("Escolha:\n 1 -> Adicionar em Hora(s) \n 2 -> Adicionar em Minuto(s) \n 3 -> Remover em Hora(s) \n 4 -> Remover em Minuto(s)");
                values = new Action().Choosing(Console.ReadLine(), values);

                ////Inicio -> Validando quantidade a adicionar ou remover
                Console.WriteLine("Digite um valor: ");
                values = new Value().Choosing(Console.ReadLine(), values);

                ////Inicio -> Validando escolha do formato.
                Console.WriteLine("Escolha abaixo qual formato deseja visualizar a nova data.");
                Console.WriteLine(" 1 -> dd/mm/yyyy hh:mm \n 2 -> dd-mm-yyyy hh:mm \n 3 -> dd-Mes-yyyy hh:mm \n 4 -> dd de mm de yyyy, hh hora(s) e mm minuto(s)");
                values = new Format().Choosing(Console.ReadLine(), values);

                ////Tudo certo e validado chamar metodo pra impressão
                string newDatetime = new Datetime.Datetime().ApplyChanges(values);

                Console.WriteLine("Data informada --> " + datetime);
                Console.WriteLine("Data atualizada --> " + newDatetime);

                Console.WriteLine();
                Console.WriteLine("#### Fim");

                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine("Digite a data desejada abaixo no formato dd/mm/yyyy hh:mm");
                datetime = Console.ReadLine();
                //// FIM
            }
        }
コード例 #3
0
        public string Format(string datetime, int format_type)
        {
            date = new Datetime();
            //Obter dia usando método da classe
            int day = date.GetDay(datetime);

            //Obter mês usando método da classe
            int month = date.GetMonth(datetime);

            //Obter ano usando método da classe
            int year = date.GetYear(datetime);

            //Obter hora usando método da classe
            int hour = date.GetHours(datetime);

            //Obter minutos usando método da classe
            int minutes = date.GetMinutes(datetime);

            //Testes usando ternários para determinar a formatação da string de retorno.
            //Dia e mês
            string dayStr   = day < 10 ? "0" + day.ToString() : day.ToString();
            string monthStr = month < 10 ? "0" + month.ToString() : month.ToString();

            //Hora e minuto
            string hoursStr   = hour < 10 ? "0" + hour.ToString() : hour.ToString();
            string minutesStr = minutes < 10 ? "0" + minutes.ToString() : minutes.ToString();

            string monthName = date.Month(month, year).Name;

            //Formatar a data.
            if (format_type == 2)
            {
                //2 -> dd-mm-yyyy hh:mm
                return(string.Format("{0}-{1}-{2} {3}:{4}",
                                     dayStr, monthStr, year.ToString(), hoursStr, minutesStr).ToUpper());
            }

            if (format_type == 3)
            {
                //3 -> dd-Mes-yyyy hh:mm
                return(string.Format("{0}-{1}-{2} {3}:{4}",
                                     dayStr, monthName, year.ToString(), hoursStr, minutesStr).ToUpper());
            }

            if (format_type == 4)
            {
                // 4 -> dd de Mes de yyyy, hh hora(s) e mm minuto(s)");
                return(string.Format("{0} de {1} de {2}, {3} hora(s) e {4} minuto(s)",
                                     dayStr, monthName, year.ToString(), hoursStr, minutesStr).ToUpper());
            }

            //1 -> dd/mm/yyyy hh:mm
            //Tipo 1 é formato default
            return(string.Format("{0}/{1}/{2} {3}:{4}", dayStr, monthStr, year.ToString(), hoursStr, minutesStr));
        }
コード例 #4
0
        public string SubtractMinutes(string datetime, long value)
        {
            //Subtract = 4000 (minutes)
            //Input = "04/03/2010 17:40"
            //Output = "01/03/2010 23:00"
            Datetime date = new Datetime();

            int day = date.GetDay(datetime);

            int month = date.GetMonth(datetime);

            int year = date.GetYear(datetime);

            int hour = date.GetHours(datetime);

            int minute = date.GetMinutes(datetime);

            //Variavel de saída
            string datimeOutup = string.Empty;

            while (value != 0)
            {
                date = new Datetime().Month(month, year);

                minute--;

                if (minute < 0)
                {
                    //último minuto
                    minute = 59;
                    if (hour == 0)
                    {
                        //última hora
                        hour = 23;
                    }
                    else
                    {
                        //Subtrair hora
                        hour--;
                    }
                }

                if (hour == 23 && minute == 59)
                {
                    //Mudou o dia
                    day--;
                }

                if (day == 0)
                {
                    //Mudou o mês
                    month--;

                    if (day == 0)
                    {
                        //Pegar último dia do mês
                        day = date.LastDay;
                    }
                }

                if (month == 0)
                {
                    //Último dia do ano
                    year--;
                    month = 12;
                    day   = date.LastDay;
                }

                value--;

                if (value == 0)
                {
                    return(datimeOutup = string.Format("{0}/{1}/{2} {3}:{4}",
                                                       day.ToString(), month.ToString(), year.ToString(), hour.ToString(), minute.ToString()));
                }
            }

            //Retornando string vazia caso nao existe incremento
            return(datimeOutup);
        }
コード例 #5
0
        public string AddMinutes(string datetime, long value)
        {
            //Add = 4000 (minutes)
            //Input = "01/03/2010 23:00"
            //Output = "04/03/2010 17:40"

            date = new Datetime();

            int day = date.GetDay(datetime);

            int month = date.GetMonth(datetime);

            int year = date.GetYear(datetime);

            int hour = date.GetHours(datetime);

            int minute = date.GetMinutes(datetime);

            //Variavel de saída
            string datimeOutup = datetime;

            while (value != 0)
            {
                date = new Datetime().Month(month, year);
                minute++;

                if (minute == 60)
                {
                    //Mudou a hora
                    hour++;
                    minute = 0;
                }

                if (hour == 24)
                {
                    //Mudou o dia
                    day++;
                    hour   = 0;
                    minute = 0;
                }

                if (day > date.LastDay)
                {
                    //Mudou o mes
                    day = 1;
                    month++;
                    hour   = 0;
                    minute = 0;
                }

                if (month == 13)
                {
                    //Mudou o ano
                    year++;
                    month  = 1;
                    day    = 1;
                    hour   = 0;
                    minute = 0;
                }

                value--;

                if (value == 0)
                {
                    return(string.Format("{0}/{1}/{2} {3}:{4}",
                                         day.ToString(), month.ToString(), year.ToString(), hour.ToString(), minute.ToString()));
                }
            }

            return(datimeOutup);
        }