Here you can find the source of trunc(Timestamp dayTime, String trunc)
Parameter | Description |
---|---|
dayTime | day |
trunc | how to truncate TRUNC_ |
static public Timestamp trunc(Timestamp dayTime, String trunc)
//package com.java2s; /****************************************************************************** * The contents of this file are subject to the Compiere License Version 1.1 * ("License"); You may not use this file except in compliance with the License * You may obtain a copy of the License at http://www.compiere.org/license.html * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License. * The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial * Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke * are Copyright (C) 1999-2005 Jorg Janke. * All parts are Copyright (C) 1999-2005 ComPiere, Inc. All Rights Reserved. * Contributor(s): ______________________________________. *****************************************************************************/ import java.sql.Timestamp; import java.util.Calendar; import java.util.GregorianCalendar; public class Main { /** Truncate Day - D */ public static final String TRUNC_DAY = "D"; /** Truncate Week - W */ public static final String TRUNC_WEEK = "W"; /** Truncate Month - MM */ public static final String TRUNC_MONTH = "MM"; /** Truncate Quarter - Q */ public static final String TRUNC_QUARTER = "Q"; /**//from ww w .j av a 2s.c o m * Get truncated day/time * @param dayTime day * @param trunc how to truncate TRUNC_* * @return next day with 00:00 */ static public Timestamp trunc(Timestamp dayTime, String trunc) { if (dayTime == null) dayTime = new Timestamp(System.currentTimeMillis()); GregorianCalendar cal = new GregorianCalendar(); cal.setTimeInMillis(dayTime.getTime()); cal.set(Calendar.MILLISECOND, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); // D cal.set(Calendar.HOUR_OF_DAY, 0); if (trunc == null || trunc.equals(TRUNC_DAY)) return new Timestamp(cal.getTimeInMillis()); // W if (trunc.equals(TRUNC_WEEK)) { cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek()); return new Timestamp(cal.getTimeInMillis()); } // MM cal.set(Calendar.DAY_OF_MONTH, 1); if (trunc.equals(TRUNC_MONTH)) return new Timestamp(cal.getTimeInMillis()); // Q if (trunc.equals(TRUNC_QUARTER)) { int mm = cal.get(Calendar.MONTH); if (mm < 4) mm = 1; else if (mm < 7) mm = 4; else if (mm < 10) mm = 7; else mm = 10; cal.set(Calendar.MONTH, mm); return new Timestamp(cal.getTimeInMillis()); } cal.set(Calendar.DAY_OF_YEAR, 1); return new Timestamp(cal.getTimeInMillis()); } }