public void BuscaFusoHorario(FusoHorario fusoHorario)
        {
            try
            {
                string sql = "select FUSOHORARIO, FUSOHORARIOVERAO, CTRLHORARIOVERAO, INIHORARIOVERAO, FINHORARIOVERAO from dbEMPRESA where ID_EMPRESA = 1";

                SqlConnection conexao = DBConnection.Conexao.ConectaSql;
                if (conexao.State != ConnectionState.Open)
                    conexao.Open();
                SqlCommand command = new SqlCommand(sql, conexao);
                SqlDataReader reader = command.ExecuteReader();

                if (reader.Read())
                {

                    fusoHorario.FusoHorarioAtual = Convert.ToInt32(reader["FUSOHORARIO"]);
                    fusoHorario.FusoHorarioVerao = Convert.ToInt32(reader["FUSOHORARIOVERAO"]);
                    if (Convert.ToString(reader["CTRLHORARIOVERAO"]) == "S")
                        fusoHorario.ControlaHorarioVerao = true;
                    else
                        fusoHorario.ControlaHorarioVerao = false;
                    fusoHorario.InicioHorarioVerao = Convert.ToDateTime(reader["INIHORARIOVERAO"]);
                    fusoHorario.FinalHorarioVerao = Convert.ToDateTime(reader["FINHORARIOVERAO"]);

                }

                conexao.Close();

            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível buscar o fuso horário atual. Erro: " + ex.Message);
            }
        }
        public static DateTime ArrumarFusoHorario(DateTime data, FusoHorario.FusoHorario fusoHorario)
        {
            DateTime dataAlterada;

            try
            {
                int dataIni = DateTime.Compare(data, fusoHorario.InicioHorarioVerao);
                int dataFim = DateTime.Compare(data, fusoHorario.FinalHorarioVerao);

                if (dataIni >= 0 && dataFim <= 0)
                {
                    if (fusoHorario.ControlaHorarioVerao)
                        dataAlterada = data.AddHours(fusoHorario.FusoHorarioVerao);
                    else
                        dataAlterada = data.AddHours(fusoHorario.FusoHorarioAtual);
                }
                else
                    dataAlterada = data.AddHours(fusoHorario.FusoHorarioAtual);

            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível converter a data para o fuso correto. Erro: " + ex.Message);
            }

            //DateTime dataAlterada;

            //try
            //{
            //    int dataIni = DateTime.Compare(data, fusoHorario.InicioHorarioVerao);
            //    int dataFim = DateTime.Compare(data, fusoHorario.FinalHorarioVerao);

            //    if (dataIni >= 0 && dataFim <= 0)
            //    {
            //        if (fusoHorario.ControlaHorarioVerao)
            //            dataAlterada = new DateTime(data.Year, data.Month, ArrumarDia(data.Day, data.Hour, fusoHorario.FusoHorarioVerao), ArrumarHora(data.Hour, fusoHorario.FusoHorarioVerao), data.Minute, data.Second, data.Kind);
            //        else
            //            dataAlterada = new DateTime(data.Year, data.Month, ArrumarDia(data.Day, data.Hour, fusoHorario.FusoHorarioAtual), ArrumarHora(data.Hour, fusoHorario.FusoHorarioAtual), data.Minute, data.Second, data.Kind);
            //    }
            //    else
            //        dataAlterada = new DateTime(data.Year, data.Month, ArrumarDia(data.Day, data.Hour, fusoHorario.FusoHorarioAtual), ArrumarHora(data.Hour, fusoHorario.FusoHorarioAtual), data.Minute, data.Second, data.Kind);

            //}
            //catch (Exception ex)
            //{
            //    throw new Exception("Não foi possível converter a data para o fuso correto. Erro: " + ex.Message);
            //}

            return dataAlterada;
        }
Beispiel #3
0
 public static FusoHorario ObterInstancia()
 {
     if (instancia == null)
         instancia = new FusoHorario();
     return instancia;
 }
Beispiel #4
0
 private void IniciaFusoHorario()
 {
     FusoHorario.ControleFusoHorario controleFuso = new FusoHorario.ControleFusoHorario();
     fusoHorario = FusoHorario.FusoHorario.ObterInstancia();
     controleFuso.BuscaFusoHorario(fusoHorario);
 }