Java Timestamp trunc(Timestamp dayTime, String trunc)

Here you can find the source of trunc(Timestamp dayTime, String trunc)

Description

Get truncated day/time

License

Open Source License

Parameter

Parameter Description
dayTime day
trunc how to truncate TRUNC_

Return

next day with 00:00

Declaration

static public Timestamp trunc(Timestamp dayTime, String trunc) 

Method Source Code

//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());
    }
}

Related

  1. timestampNow()
  2. TimestampNow()
  3. timestampOf(final ZonedDateTime time)
  4. timestampPlusDay(java.sql.Timestamp ts, int iDayPlus)
  5. timestampPlusDay2DDMMYYYY(java.sql.Timestamp ts, int iDayPlus)
  6. truncateFractionalSeconds(Timestamp timestamp)
  7. truncateTimestamp(Timestamp timestamp, String period)
  8. truncNanos(Timestamp timestamp)
  9. unformattedFromTimestamp(java.sql.Timestamp t)