⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dateshiftfunc.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
字号:
/*
 * Copyright 2006-2007 Queplix Corp.
 *
 * Licensed under the Queplix Public License, Version 1.1.1 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.queplix.com/solutions/commercial-open-source/queplix-public-license/
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package com.queplix.core.modules.eql.funcs;

import com.queplix.core.modules.eql.*;
import com.queplix.core.modules.eql.error.EQLException;
import com.queplix.core.modules.eql.error.EQLFunctionParseException;
import com.queplix.core.utils.DateHelper;

import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;

/**
 * Shift now date
 *
 * @author Sergei Savchuk
 */
public class DateShiftFunc extends EQLReqSubOpMemberFunc implements EQLReqFuncExecutable {
    private static final String YEAR = "year";
    private static final String YEAR_SIMPLE = "y";
    private static final String MONTH = "month";
    private static final String MONTH_SIMPLE = "m";
    private static final String DAY = "day";
    private static final String DAY_SIMPLE = "d";

    public EQLReqSubOpMember execute() throws EQLException {
        EQLReqOp firstReqOp = getParameter(0),
                secondReqOp = getParameter(1);
        if (firstReqOp == null || secondReqOp == null) {
            throw new EQLFunctionParseException(this);
        }
        int amount;
        String name;
        // get parameter's values
        try {
            EQLNumberObject firstOptMember = (EQLNumberObject) firstReqOp.getSubOp(0).getMember();
            amount = firstOptMember.getValue().intValue();
            EQLStringObject secOptMember = (EQLStringObject) secondReqOp.getSubOp(0).getMember();
            name = secOptMember.getValue();
        } catch (Exception ex) {
            throw new EQLFunctionParseException(this, ex);
        }
        // shift current date
        Calendar cal = Calendar.getInstance();
        cal.setTime(DateHelper.getNowDate());
        cal.add(defineField(name), amount);
        return new EQLDateObject(cal.getTime());
    }

    private int defineField(String name) {
        name = name.toLowerCase();
        if (name.equals(YEAR_SIMPLE) || name.equals(YEAR)) {
            return Calendar.YEAR;
        } else if (name.equals(MONTH_SIMPLE) || name.equals(MONTH)) {
            return Calendar.MONTH;
        } else if (name.equals(DAY_SIMPLE) || name.equals(DAY)) {
            return Calendar.DAY_OF_YEAR;
        }
        throw new IllegalStateException("Unknown parameter's name: " + name);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -