Primeiro dia


Por favor, parem de pensar mal da programadora. A parte da tirada dela no início foi só um adendo da minha parte. Cabe melhor ao programador, mas só depois é que reparei que a história vinha de uma dama…

/* História real enviada por Isabela */
Alonso: Você manja de PL/SQL?
Programadora: Você acha que tem alguma coisa que não manjo?
Alonso: Então me ajuda aqui. Preciso terminar isso ainda hoje… Sabe a função LAST_DAY() que retorna o último dia do mês?
Programadora: Ahan…
Alonso: Então, tô precisando pegar o primeiro dia do mês. Que função uso? Tem uma FIRST_DAY()?
Programadora: PLOFT!

91 ideias sobre “Primeiro dia

    1. blah

      mas ainda assim seria difícil implementar algo nesse nível num db…

      imagina a data 1 de maio de algum ano, e por infelicidade do programador, caia numa quarta feira….

      o primeiro dia útil seria o dia 1?

      e lá vou eu receber muito negativos…

      Responder
      1. Lucas

        Sim, tive um amigo que trabalhou com um algoritmo de descobrir quais eram os dias úteis do mês uma vez. Ele disse que era mil vezes mais fácil você criar um arquivo gigante dizendo pra cada dia se é útil ou não do que desenvolver um algoritmo que descubra.

        Responder
    1. JOÃO PAULO

      faltou a passagem de parâmetros para dizer em mês e ano.

      function FirstDay(Data: tdatetime) : integer;
      begin
      if ((Data = Data) or (Data Data)) then
      result := 1
      else
      result := 1; // pra garantir
      end;

      Responder
      1. JOÃO PAULO

        pena que cortou

        function FirstDay(Data: tdatetime) : integer;
        begin
        if ((Data = Data) or (Data <> Data)) then
        result := 1
        else
        result := 1; // pra garantir
        end;

        Responder
  1. Igor

    Li a tirinha tão rápido que só fui entender a piada lendo os comentários. Acho que meu cérebro não processou a pergunta inteligente do rapaz.

    Boa tirinha!

    Responder
  2. Adriano

    Sei que eu vou tomar um monte de negativadas, mas vejam no contexto. Não é retornar “1″ apenas, pois LAST_DAY não retorna um número e sim uma data. Poderia ser feito assim: “last_day(data – 31) + 1″ ou “trunc(data, ‘MM’)”

    O primeiro caso seria demais pra maioria dos estagiários, e o segundo não é nada óbvio.

    Responder
          1. Adriano

            A fórmula correta é essa:
            last_day(last_day(data) – 31) + 1

            A outra que eu passei falha nos dias 1 de meses de 31 dias, voltando ao mês anterior.

            Isso mostra que a tirinha foi forçada, isso que eu quiz dizer. Seria bem interessante se tivesse a função FIRST_DAY.

          1. PH

            ops, já foi corrigido, só li depois :) ignorem meu comentário.

            um jeito fácil de fazer é algo como

            result = data – day(data) + 1

            Lógico, adaptando para a sintaxe da linguagem utilizada.

          1. Adriano

            A solução com o last_day seria para um programador que saiba pensar (e esteja concentrado no que estava fazendo, e não lendo tirinhas hehe) mas que não conhecia muito bem a linguagem.

            No caso eu acho muito melhor usar o trunc.

    1. @renato_cron

      me negativaram mas acho que

      select date_trunc(‘month’, current_date) as primeiro, date_trunc(‘month’, current_date)+’1month’::interval-’1sec’::interval as ultimo_mes;

      2011-12-01 00:00:00-02 | 2011-12-31 23:59:59-02

      é mais simples/efetivo/facil de alterar/faz sentido/nao é pog do que
      last_day(last_day(data) – 31) + 1

      Responder
  3. Eliseu Caraça

    “…tem alguma coisa que não manjo?”, puta programadora mala. Há coisas que não precisam ser ditas, por mais que sejam verdade, diga-se. rsrs

    Responder
    1. Camila

      Eu li o título da tira achando que se referia a primeiro dia de trabalho, só quando terminei de ler a tira que entendi que era outra coisa. hehe

      Responder
  4. Anderson

    Ahhh kra, tem tirinhas (essa é um exemplo) que eu acho que é fruto da imaginação de alguém só pra nos fazer rir… não acredito que exista alguém assim não…

    Responder
  5. Flávio

    torcendo para que a pessoa tenha se referido ao primeiro dia util… o que pelo que eu saiba, só seria possível no banco caso você tenha tabelas de feriados (no plural mesmo por que fica mais por que você pode usar feriado nacional ou regional para ficar melhor, sendo que pelo cadastro do cliente você pode desconsiderar o feriado caso ele seja de uma região diferente da do feriado). Caso você tenha essa tabela você pode resolver esse problema com uma query, ou uma subquery se for o caso.

    Responder
  6. @wbarbosa_

    O pior é que as empresas de TI estão infestadas de “Alonsos”.

    A atitude da programadora do primeiro quadrinho merece o selo Sandra Anenberg de Deselegância….

    Já teve um “dinossauro” de mainframe que mandou uma parecida prá mim e tomou uma invertida que ficou MUITO chato prá ele, e pior, a invertida foi involuntária… :-o

    Responder
  7. Rui

    Eu racho de rir das tirinhas aqui, mas o pessoal que acha que programa e fica tirando onda um com o outro é f…. Basta rir da piada e seguir em frente… Isso tá ficando chato..
    No começo a galera só curtir a fazia um comentário engraçado. Agora, tá todo mundo se achando programador e ofendendo…

    Parabéns pro vidadeprogramador… ótimas tirinhas pra nos desestressar!!!

    Responder
  8. Renan

    Eu fico pensando, sera que se der trela pra pessoa, ela vai continuar com o racicionio bizarro, digo, deixa ela sofrer pensando na tal função first_day(), ai no dia seguinte sera que ela aparece com alguma resposta do tipo.

    “Pow, e aquela função lá, eu percebi que eu posso usar 1 no lugar, porque sempre vai ser o primeiro dia”

    o.O

    Responder
  9. Daniel Tomy

    Pode parecer impossível, mas em ADVPL, linguagem do Totvs Protheus, existe esta função, mas não retorna o dia, e sim a data completa do primeiro dia do mês de uma data passada como parâmetro:
    FirstDate( dDate ) -> dFristDate -> Retorna a Data do Primeiro dia do mes da data passada

    Responder

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>