001 /** 002 * Implements the CFML Function day 003 */ 004 package railo.runtime.functions.dateTime; 005 006 import java.util.TimeZone; 007 008 import railo.commons.date.DateTimeUtil; 009 import railo.commons.date.TimeZoneUtil; 010 import railo.runtime.PageContext; 011 import railo.runtime.exp.ExpressionException; 012 import railo.runtime.exp.PageException; 013 import railo.runtime.functions.BIF; 014 import railo.runtime.op.Caster; 015 import railo.runtime.type.dt.DateTime; 016 017 public final class Day extends BIF { 018 019 private static final long serialVersionUID = -7476348690381151695L; 020 021 public static double call(PageContext pc , DateTime date) { 022 return _call(pc, date,pc.getTimeZone()); 023 } 024 public static double call(PageContext pc , DateTime date, String strTimezone) throws ExpressionException { 025 return _call(pc, date,strTimezone==null?pc.getTimeZone():TimeZoneUtil.toTimeZone(strTimezone)); 026 } 027 028 private static double _call(PageContext pc , DateTime date,TimeZone tz) { 029 return DateTimeUtil.getInstance().getDay(tz, date); 030 } 031 032 @Override 033 public Object invoke(PageContext pc, Object[] args) throws PageException { 034 if(args.length==1)return call(pc,Caster.toDatetime(args[0],pc.getTimeZone())); 035 return call(pc,Caster.toDatetime(args[0],pc.getTimeZone()),Caster.toString(args[1])); 036 } 037 }