Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-12-2006
Ricsato Ricsato is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mexicali, Mexico
Posts: 72
Poder: 21
Ricsato Va por buen camino
Ultimo dia Viernes de cada mes

Alguien conoce alguna funcion o consulta SQL que me regrese la fecha que le corresponde ya sea al Primer o Ultimo Viernes de cada mes utilizando Dephi 5 y SQL Server 2000?

Saludos desde Mexicali, B.C., Mexico.

Última edición por Ricsato fecha: 13-12-2006 a las 05:56:53.
Responder Con Cita
  #2  
Antiguo 13-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En delphi sip, en sql ya es más dificil, no sé si sql server permite la creación de UDFs (funciones definidas por el usuario) si es así, puedes hacer una:

Código Delphi [-]
          // si la fecha de aviso era un martes,
          // averiguamos el primer martes del parametro Fecha

DecodeDayOfWeekInMonth(FechaAviso, y, m, an, d);
          NotaActualizada := EncodeDayOfWeekInMonth(YearOf(Fecha),
            MonthOf(Fecha),
            1,
            d);
el 1 indica que en la primera semana del mes
el d indica el día de la semana (lunes, martes, miercoles, etc)

Edito: esto pertenece a Delphi 6 (no sé si está disponible en delphi 5, consulta la ayuda)

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 13-12-2006
Ricsato Ricsato is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mexicali, Mexico
Posts: 72
Poder: 21
Ricsato Va por buen camino
Gracias

Agradezco tu ayuda, pero lamentablemente esa funcion no esta disponible para Delphi 5
Responder Con Cita
  #4  
Antiguo 13-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No sé si incumplo alguna norma del foro o licencia de Borland, si algún moderador lo sabe, que no dude en eliminar este mensaje e informarme de ello.

El código de la vcl es:
Código Delphi [-]

const   SInvalidDayOfWeekInMonth = '(%d, %d, %d, %d) is not a valid DayOfWeekInMonth quad';

procedure DecodeDayOfWeekInMonth(const AValue: TDateTime; out AYear, AMonth,
  ANthDayOfWeek, ADayOfWeek: Word);
var
  ADay: Word;
begin
  DecodeDate(AValue, AYear, AMonth, ADay);
  ANthDayOfWeek := (ADay - 1) div 7 + 1;
  ADayOfWeek := DayOfTheWeek(AValue);
end;

function EncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek,
  ADayOfWeek: Word): TDateTime;
begin
  if not TryEncodeDayOfWeekInMonth(AYear, AMonth, ANthDayOfWeek, ADayOfWeek, Result) then
    InvalidDayOfWeekInMonthError(AYear, AMonth, ANthDayOfWeek, ADayOfWeek);
end;

function TryEncodeDayOfWeekInMonth(const AYear, AMonth,
  ANthDayOfWeek, ADayOfWeek: Word; out AValue: TDateTime): Boolean;
var
  LStartOfMonth, LDay: Word;
begin
  LStartOfMonth := DayOfTheWeek(StartOfAMonth(AYear, AMonth));
  if LStartOfMonth <= ADayOfWeek then
    LDay := (ADayOfWeek - LStartOfMonth + 1) + 7 * (ANthDayOfWeek - 1)
  else
    LDay := (7 - LStartOfMonth + 1) + ADayOfWeek + 7 * (ANthDayOfWeek - 1);
  Result := TryEncodeDate(AYear, AMonth, LDay, AValue);
end;


procedure InvalidDayOfWeekInMonthError(const AYear, AMonth, ANthDayOfWeek,
  ADayOfWeek: Word);
begin
  raise EConvertError.CreateFmt(SInvalidDayOfWeekInMonth, [AYear, AMonth,
    ANthDayOfWeek, ADayOfWeek]);
end;

Quizás esta función la tenga ya:
Código Delphi [-]
function DayOfTheWeek(const AValue: TDateTime): Word;
begin
  Result := (DateTimeToTimeStamp(AValue).Date - 1) mod 7 + 1;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 13-12-2006 a las 23:08:38.
Responder Con Cita
  #5  
Antiguo 13-12-2006
Ricsato Ricsato is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mexicali, Mexico
Posts: 72
Poder: 21
Ricsato Va por buen camino
Gracias por publicar el codigo

Gracias por compartir el codigo y aprovechando tu buena disposicion, compile el codigo que me enviaste, pero el compilador de delphi 5 me indica error de declaracion en las siguientes funciones:

YearOf(Fecha)
MonthOf(Fecha)
SInvalidDayOfWeekInMonth, [AYear, AMonth, ANthDayOfWeek, DayOfWeek]);
StartOfAMonth(AYear, AMonth)
TryEncodeDate(AYear, AMonth, LDay, AValue)

me imagino que estas funciones ya estan declaradas en delphi 6, te agradecere si me envias su codigo.

Saludos.
Responder Con Cita
  #6  
Antiguo 13-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Edito el mensaje para que quede todo, es una simple constante declarada en otra unidad.

Añade "uses Dateutils", el resto de funciones si deben estar en delphi 5. He mirado pero son llamadas de unas funciones a otras, bastante lioso, es preferible que antes mires si ya las tienes disponibles.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 14-12-2006
Ricsato Ricsato is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mexicali, Mexico
Posts: 72
Poder: 21
Ricsato Va por buen camino
Marca error en DateUtils

Añadi al Uses el DateUtils, pero caray, que lastima, creo que esa libreria es de Delphi 6, me marca "File no Found: DateUtils.dcu", bueno gracias por tu ayuda, intentare hacerlo creando alguna rutina.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Subconsulta para escojer el ultimo de cada registro? Carlex SQL 14 24-09-2018 21:50:32
Viernes Social judit25 La Taberna 6 10-06-2006 01:02:34
Huracan Rita se estrellara el viernes el_barto Noticias 0 22-09-2005 18:51:27
Ultimo registro ander Firebird e Interbase 3 18-03-2004 14:52:02
¿Saldrías en NocheVieja si cayera en Viernes 13? obiwuan Humor 9 13-06-2003 22:19:50


La franja horaria es GMT +2. Ahora son las 23:15:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi