una sofas sofa sillones separados precios pieza modulos modulares modernos fama diseñar java php coldfusion

java - sillones - sofas fama precios



¿Cómo encontrar el último lunes más reciente? (3)

Estoy usando ColdFusion 9.0.1.

Estoy creando un concurso todos los lunes a la medianoche. Necesito usar ColdFusion (pero estoy seguro de que la lógica es la misma para otros idiomas) para encontrar la fecha del lunes pasado más reciente. Una vez que determine esa fecha, incluiré esa fecha en una declaración SQL para obtener la clasificación actual y los resultados anteriores.

Entonces, ¿qué funciones necesito para encontrar el pasado lunes pasado?

RESPONDER

Dates = structNew(); Dates.CurrentDay = dateFormat(now(), "yyyy-mm-dd"); // LOOP MAX OF SEVEN TIMES for (i = 1; i lte 7; i++) { // IF CURRENT DAY OF WEEK IS MONDAY SET AND BREAK if (dayOfWeek(Dates.CurrentDay) == 2) { Dates.BikeOfTheWeekDate = Dates.CurrentDay; break; // IF CURRENT DAY OF WEEK IS NOT MONDAY SUBTRACT DAY } else { Dates.CurrentDay = dateAdd("d", -1, Dates.CurrentDay); } }


Pseudocódigo:

Get the current day Loop Check if it''s Monday If yes, break out of the loop Substract one Next loop

En ColdFusion, sustraiga un día con DateAdd("d", -1, date) y DayOfWeek(date) lunes con DayOfWeek(date) que devuelve 2 para el lunes.


También podría deducir el día actual de la semana de 2 (es decir, el lunes)

<!--- All days except Sunday (ie 2-Monday,...,7-Saturday) ---> <cfif dayOfWeek(currentDate) gt 1> <cfset mostRecentMonday = dateAdd("d", 2-dayOfWeek(currentDate), currentDate)> <cfelse> <cfset mostRecentMonday = dateAdd("d", -6, currentDate)> </cfif>


También puedes hacerlo usando la clase Java Calendar.

Que es lo que los métodos de fecha de ColdFusion usan internamente.

<cfscript> var cal = createObject( ''java'', ''java.util.Calendar'' ).getInstance(); cal.setTime( now() ); // if the (7) day of week is before (2) monday, we want the previous week // decrement the (3) week of year if ( cal.get(7) < 2 ) { cal.set( 3, cal.get(3) - 1 ); } // set the (7) day of week back to (2) monday cal.set( 7, 2 ); // 7 = day of week, 2 = monday // reset time fields back to 0, aka midnight cal.set( 11, 0 ); // 11 = hour of day cal.set( 12, 0 ); // 12 = minute cal.set( 13, 0 ); // 13 = second cal.set( 14, 0 ); // 14 = millisecond // get the last monday Date var lastMonday = cal.getTime(); // cal.getTime() returns a java.util.Date // if you want to convert the date to a ColdFusion OleDateTime, you can like so var lastMonday = dateAdd( ''d'', 0, cal.getTime() ); // or like this var lastMonday = createObject( ''java'', ''coldfusion.runtime.OleDateTime'' ).init( cal.getTime() ); <cfscript>

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Date.html