001 /** 002 * Implements the Cold Fusion Function firstdayofmonth 003 */ 004 package railo.runtime.functions.dateTime; 005 006 import java.util.Calendar; 007 import java.util.TimeZone; 008 009 import railo.commons.date.JREDateTimeUtil; 010 import railo.commons.date.TimeZoneUtil; 011 import railo.runtime.PageContext; 012 import railo.runtime.exp.ExpressionException; 013 import railo.runtime.ext.function.Function; 014 import railo.runtime.type.dt.DateTime; 015 016 public final class FirstDayOfMonth implements Function { 017 018 public static double call(PageContext pc , DateTime date) { 019 return _call(pc, date, pc.getTimeZone()); 020 } 021 022 public static double call(PageContext pc , DateTime date, String strTimezone) throws ExpressionException { 023 return _call(pc, date, strTimezone==null?pc.getTimeZone():TimeZoneUtil.toTimeZone(strTimezone)); 024 } 025 026 private static double _call(PageContext pc , DateTime date,TimeZone tz) { 027 //synchronized (calendar) { 028 Calendar calendar=JREDateTimeUtil.getCalendar(); 029 calendar.clear(); 030 calendar.setTimeZone(tz); 031 calendar.setTime(date); 032 calendar.set(Calendar.DATE,1); 033 return calendar.get(Calendar.DAY_OF_YEAR); 034 //} 035 } 036 }