Jump to content

[Recurso] Funciones de tiempo


Recommended Posts

4ed29d18e44dfbd88e860defe87d1284.gif  

Introducción

Este recurso es una ayuda a los programadores que busquen tener un control más amplio del tiempo! 

Funciones:

  • getWeekDay
  • getMonthDays
  • getMonthName
  • getYearDays
  • getRemaningDaysInYear
  • getSpentsDaysInYear
  • dateToUnix
  • unixToDate
  • getDateInAdd

Ejemplos

string getWeekDay(day, month, year)

Permite obtener qué día de la semana es la fecha específicada (Su funcionamiento es puramente matemático, para conocer más sobre su funcionamiento https://en.wikipedia.org/wiki/Zeller's_congruence)


outputchatBox(getWeekDay(13, 11, 2016));

-- output: Domingo

int getMonthDays(month, year)

Obtiene la cantidad de días de cierto mes tomando en cuenta los años biciestos (razón por la cual es obligatorio el argumento)

local days = getMonthDays(2, 2016) -- Año biciesto

-- days contains: 29,

local days = getMonthDays(2, 2017) -- Año normal

-- days contains: 28, 

string getMonthName(month)

Obtiene el nombre del mes especificado

local n = getMonthName(11)

-- n contains: Noviembre

int getYearDays(year)

Obtiene la cantidad de días del año especificado incluyendo los días al ser año biciesto

local n = getYearDays(2016)

-- n contains: 366

local n = getYearDays(2015)

-- n contains: 365

int getRemaningDaysInYear(day, month, year) 

Obtiene la cantidad de días que faltan en el año según los datos especificados

local n = getRemaningDaysInYear(13, 11, 2016)

-- n contains: 48 

int getSpentsDaysInYear(day, month, year) 

Obtiene la cantidad de días que han pasado en el año según los datos especificados

local n = getSpentsDaysInYear(13, 11, 2016) 

-- n contains: 318

int dateToUnix(day, month, year)

Convierte el día, año y mes al tiempo unix para tener un mayor control de éste mediante el unixtime (https://es.wikipedia.org/wiki/Tiempo_Unix)

local time = dateToUnix(13, 11, 2016)

-- time contains:  1512864000

int, int, int unixToDate(unixtime)

Convierte el unixtime a datos leibles 

local day, month, year = unixToDate(1512864000);
    
--- days, mounth, year contains: 13, 11, 2016

int, int, int getDateInAdd(_day, _month, _year, days, months, years) 

Añade días a una fecha especificada y obtiene la fecha con los días, meses y años añadidos siguendo el formato del calendario (añades 20 días siendo 12 de diciembre de 2016 te dará) 1, enero 2017 sin alterar el orden

local d, m, y = getDateInAdd(13, 11, 2016, 2, 0, 0);

outputServerLog(getWeekDay(d, m, y))

-- output: Martes (15) ya que Domingo (13)

meta.xml

Todas las funciones pueden ser exportadas, para poner el resource en español configurar en el meta.xml

<setting name="*Lang" value="[1]"/>

-- Cambiar a

<setting name="*Lang" value="[2]"/>

 

 

Link de del recurso ->  https://github.com/iZume/time-functions-LUA/archive/master.zip

 

Edited by Chainsaw
  • Like 2
Link to comment

Actualice el recurso, la función dateToUnix tenía un bug en la conversión de tiempo  :P 

______________________

Por cierto, lo que está en la imagen de presentación del tema se puede lograr así:

    local time = getRealTime();
    local day, month, year = time.monthday, time.month + 1, time.year + 1900;

    for i=1,getRemaningDaysInYear(day, month, year) do
        local d, m, y = getDateInAdd(day, month, year, i, 0, 0)

        outputServerLog(string.format("In +%i days will be: %s %i, %i (%s)", i, getMonthName(m), d, y, getWeekDay(d, m, y)))
    end

Dicho script te dirá qué día de la semana serán todos los días del año que restan según el año en que estés

Edited by Chainsaw
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...