Obtener el nombre del mes de una fecha

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • minerva0112
    Senior Member
    • nov
    • 116

    #1

    Obtener el nombre del mes de una fecha

    hola :

    Existe alguna funcion que solo me traiga el nombre del mes de un campo fecha. Estoy utilizando la funcion CONVERSION_EXIT_LDATE_OUTPUT, la cual trae la fecha completa pero como haria para solo mostrar el mes gracias
  • gerbeltran
    Member
    • jun
    • 55

    #2
    Buenas, necesariamente tiene que ser una función?
    Porque con la que tienes ya puedes hacerlo, tengo entendido que la función CONVERSION_EXIT_LDATE_OUTPUT te devuelve algo asi como 24. Febrero2010 en el output.
    Luego tomas de ahí la parte del string que te interesa y listo.

    Otra opción también sería usar la función MONTH_NAMES_GET que te devuelve en una tabla interna los 12 meses con sus respectivos nombres , y ahí tu haces un READ TABLE con el mes que quieres obtener la descripción.

    Si tienes alguna duda dime que te paso el código.

    Saludos,
    Germán


    Originalmente publicado por minerva0112
    hola :

    Existe alguna funcion que solo me traiga el nombre del mes de un campo fecha. Estoy utilizando la funcion CONVERSION_EXIT_LDATE_OUTPUT, la cual trae la fecha completa pero como haria para solo mostrar el mes gracias

    Comentario

    • minerva0112
      Senior Member
      • nov
      • 116

      #3
      Gracias German,

      Cual seria la manera de solo tomar parte del string.


      mil gracias

      Comentario

      • Alfredosite
        Senior Member
        • jul
        • 135

        #4
        Re:

        Lo que debes hacer es esto:
        *Tabla que guarda las descripciones de los meses
        DATA: gt_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.
        *Variables que guarda el mes y la descripción
        DATA: v_mes type T247-MNR,
        v_mes_txt type T247-LTX,
        v_fecha_txt(50) type c,
        v_dia type d.

        * Obtienes la descripción de todos los nombres de los meses
        CALL FUNCTION 'MONTH_NAMES_GET'
        EXPORTING
        language = sy-langu
        TABLES
        month_names = gt_t247
        EXCEPTIONS
        month_names_not_found = 1
        OTHERS = 2.
        *Tomas el mes de un fecha por lo general es 5 y 6to caracter de la cadena de fechas ejemplo si hoy es 24/02/2010 dentro de abap la fecha se muestra asi: 20100224 entonces debes tomar solo los caracteres que muestran el mes.

        v_dia = sy-datum.
        v_mes = v_dia+4(2). "Obtienes el mes

        *Obtienes la descripción del mes seleccionado
        Loop at gt_t247 WHERE LTX eq v_mes.
        v_mes_txt = gt_t247-ltx.
        endloop.

        *Si quieres mostrar la fecha en texto EJEM: 24 de Febrero del 2010
        CONCATENATE v_dia+6(2) 'de' v_mes_txt 'del' v_dia(4) INTO v_fecha_txt.
        Saludos Cordiales,
        Alfredo Pastor Avendaño
        SAP - Consultant HCM

        Comentario

        • gerbeltran
          Member
          • jun
          • 55

          #5
          Buenas

          Ahi Alfredo te explicó muy bien como hacerlo con la 2da opcion que te comenté.

          Otra opción:
          Para tomar el contenido del mes puedes hacer un split a la variable donde tienes el string que te devolvio la funcion que vos estabas usando.
          Por ejemplo si la variable v_output = '24. Febrero 2010'.

          DATA: str1 TYPE string,
          str2 TYPE string,
          str3 TYPE string.

          SPLIT v_output AT space INTO: str1 str2 str3.

          Y en str2 te va a quedar guardado el string "Febrero".


          Saludos y éxitos!
          Germán.

          Comentario

          • luis999
            Member
            • jun
            • 82

            #6
            Originalmente publicado por minerva0112
            hola :

            Existe alguna funcion que solo me traiga el nombre del mes de un campo fecha. Estoy utilizando la funcion CONVERSION_EXIT_LDATE_OUTPUT, la cual trae la fecha completa pero como haria para solo mostrar el mes gracias

            Hola, puedes usar esto:

            CALL FUNCTION 'ISP_GET_MONTH_NAME'
            EXPORTING
            date = '00000000'
            language = sy-langu
            month_number = "Aca le das el mes"
            IMPORTING
            * LANGU_BACK =
            longtext = "Aca obtienes el nombre del mes"
            * SHORTTEXT =
            EXCEPTIONS
            calendar_id = 1
            date_error = 2
            not_found = 3
            wrong_input = 4
            OTHERS = 5.

            Saludos, espero que te sirva

            Comentario

            • fporcel
              Junior Member
              • oct
              • 1

              #7
              Función devuelve Nombre del Mes

              Te mando este ejemplo, creo que es más eficiente y lo puedes convertir fácilmente a cualquier Lenguaje o Base de Datos:
              /////////////////////////////////////////////////////////////////////////
              //Funtion: f_nom_mes
              // Creada originalmente en Clipper y adaptada a Power Builder
              //Argumentos:
              //ai_num_mes número de mes (0 al 13 con, apertura y cierre)
              //ai_lmes longitud de respuesta:
              // Cuando es 3 DIC, o cuando es 9 DICIEMBRE
              //Returns: String
              //Descripción: Retorna el nombre del mes
              ////////////////////////////////////////////////////////////////////////
              String ls_nom_mes, ls_nmeses

              If ai_lmes =3 Then
              ls_nmeses="APEENEFEBMARABRMAYJUNJULAGOSETOCTNOVDIC CIE"
              Else
              ls_nmeses=" Apertura Enero Febrero Marzo Abril Mayo Junio Julio AgostoSetiembre OctubreNoviembreDiciembre Cierre"
              End if
              ls_nom_mes=mid(ls_nmeses,ai_num_mes*ai_lmes+1,ai_l mes)

              Return ls_nom_mes

              Comentario

              • MagnaF
                Senior Member
                • dic
                • 117

                #8
                Un poco tarde pero yo encontré la solución consultando directamente la tabla

                SELECT single *
                FROM T247
                where spras = sy-langu
                and mnr = mes.

                Saludos,

                Comentario

                Trabajando...