Example usage for org.joda.time DateTime now

List of usage examples for org.joda.time DateTime now

Introduction

In this page you can find the example usage for org.joda.time DateTime now.

Prototype

public static DateTime now() 

Source Link

Document

Obtains a DateTime set to the current system millisecond time using ISOChronology in the default time zone.

Usage

From source file:com.edoli.calendarlms.CalendarView.java

License:Apache License

private void setupDate() {
    DateTime date = DateTime.now();
    date = date.withDayOfMonth(1);
    setDate(date);
    mCalendarPager.setCurrentCalendar(date);
}

From source file:com.edoli.calendarlms.DayOfWeekAdapter.java

License:Apache License

public DayOfWeekAdapter(Context context) {
    mContext = context;/* ww w.  j a  va  2  s .co m*/
    mDate = DateTime.now();

    int firstDayOfWeek = mDate.get(DateTimeFieldType.dayOfWeek());
    mDate = mDate.minusDays(firstDayOfWeek);

    mHeight = (int) UnitUtils.convertToPixel(mContext, 18); // Default height of this adapter
}

From source file:com.ehdev.chronos.lib.Chronos.java

License:Open Source License

@Override
public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
    try {//from w  w  w  .  java2 s. co  m
        Log.w(TAG, "Upgrading database, this will drop tables and recreate.");
        Log.w(TAG, "oldVerion: " + oldVersion + "\tnewVersion: " + newVersion);

        //Back up database
        try {
            File sd = Environment.getExternalStorageDirectory();
            File data = Environment.getDataDirectory();
            if (sd.canWrite()) {
                String currentDBPath = "/data/com.kopysoft.chronos/databases/" + DATABASE_NAME;
                String backupDBPath = DATABASE_NAME + ".db";
                File currentDB = new File(data, currentDBPath);
                File backupDB = new File(sd, backupDBPath);
                if (currentDB.exists()) {
                    FileChannel src = new FileInputStream(currentDB).getChannel();
                    FileChannel dst = new FileOutputStream(backupDB).getChannel();
                    dst.transferFrom(src, 0, src.size());
                    src.close();
                    dst.close();
                }
            }
        } catch (Exception e) {
            Log.e(TAG, "ERROR: Can not move file");
        }

        /*
        db.execSQL("CREATE TABLE " + TABLE_NAME_CLOCK +
            " ( _id INTEGER PRIMARY KEY NOT NULL, time LONG NOT NULL, actionReason INTEGER NOT NULL )");
        db.execSQL("CREATE TABLE " + TABLE_NAME_NOTE +
            " ( _id LONG PRIMARY KEY, note_string TEXT NOT NULL, time LONG NOT NULL )");
        */

        if (oldVersion < 15) {

            DateTime jobMidnight = DateTime.now().withDayOfWeek(7).minusWeeks(1).toDateMidnight().toDateTime()
                    .withZone(DateTimeZone.getDefault());
            Job currentJob = new Job("", 10, jobMidnight, PayPeriodDuration.TWO_WEEKS);

            SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(gContext);
            currentJob.setPayRate(Float.valueOf(pref.getString("normal_pay", "7.25")));
            currentJob.setOvertime(Float.valueOf(pref.getString("over_time_threshold", "40")));
            currentJob.setDoubletimeThreshold(Float.valueOf(pref.getString("double_time_threshold", "60")));
            SharedPreferences.Editor edit = pref.edit();
            edit.remove("8_or_40_hours"); //Moved from string to boolean
            edit.commit();
            String date[] = pref.getString("date", "2011.1.17").split("\\p{Punct}");
            jobMidnight = new DateTime(Integer.parseInt(date[0]), Integer.parseInt(date[1]),
                    Integer.parseInt(date[2]), 0, 0);

            currentJob.setStartOfPayPeriod(jobMidnight.withZone(DateTimeZone.getDefault()));

            List<Punch> punches = new LinkedList<Punch>();
            List<Task> tasks = new LinkedList<Task>();
            List<Note> notes = new LinkedList<Note>();

            Task newTask; //Basic element
            newTask = new Task(currentJob, 0, "Regular");
            tasks.add(newTask);
            newTask = new Task(currentJob, 1, "Lunch Break");
            newTask.setEnablePayOverride(true);
            newTask.setPayOverride(-7.25f);
            tasks.add(newTask);
            newTask = new Task(currentJob, 2, "Other Break");
            newTask.setEnablePayOverride(true);
            newTask.setPayOverride(-7.25f);
            tasks.add(newTask);
            newTask = new Task(currentJob, 3, "Travel");
            tasks.add(newTask);
            newTask = new Task(currentJob, 4, "Admin");
            tasks.add(newTask);
            newTask = new Task(currentJob, 5, "Sick Leave");
            tasks.add(newTask);
            newTask = new Task(currentJob, 6, "Personal Time");
            tasks.add(newTask);
            newTask = new Task(currentJob, 7, "Other");
            tasks.add(newTask);
            newTask = new Task(currentJob, 8, "Holiday Pay");
            tasks.add(newTask);

            Cursor cursor = db.query("clockactions", null, null, null, null, null, "_id desc");

            final int colTime = cursor.getColumnIndex("time");
            final int colAR = cursor.getColumnIndex("actionReason");

            if (cursor.moveToFirst()) {
                do {
                    long time = cursor.getLong(colTime);
                    Task type = tasks.get(0);
                    if (colAR != -1) {
                        type = tasks.get(cursor.getInt(colAR));
                    }
                    punches.add(new Punch(currentJob, type, new DateTime(time)));

                } while (cursor.moveToNext());
            }

            if (cursor != null && !cursor.isClosed()) {
                cursor.close();
            }

            cursor = db.query("notes", null, null, null, null, null, "_id desc");

            final int colInsertTime = cursor.getColumnIndex("time");
            final int colText = cursor.getColumnIndex("note_string");

            if (cursor.moveToFirst()) {
                do {
                    long time = cursor.getLong(colInsertTime);
                    String note = cursor.getString(colText);
                    notes.add(new Note(new DateTime(time), currentJob, note));

                } while (cursor.moveToNext());
            }

            if (cursor != null && !cursor.isClosed()) {
                cursor.close();
            }

            db.execSQL("DROP TABLE IF EXISTS clockactions");
            db.execSQL("DROP TABLE IF EXISTS notes");
            db.execSQL("DROP TABLE IF EXISTS misc");

            //Recreate DB
            TableUtils.createTable(connectionSource, Punch.class); //Punch - Create Table
            TableUtils.createTable(connectionSource, Task.class); //Task - Create Table
            TableUtils.createTable(connectionSource, Job.class); //Job - Create Table
            TableUtils.createTable(connectionSource, Note.class); //Task - Create Table

            //recreate entries
            Dao<Task, String> taskDAO = getTaskDao();
            Dao<Job, String> jobDAO = getJobDao();
            Dao<Note, String> noteDAO = getNoteDao();
            Dao<Punch, String> punchDOA = getPunchDao();

            jobDAO.create(currentJob);

            for (Task t : tasks) {
                taskDAO.create(t);
            }

            for (Note n : notes) {
                noteDAO.create(n);
            }

            for (Punch p : punches) {
                punchDOA.create(p);
            }

            //"CREATE TABLE " + TABLE_NAME_NOTE " ( _id LONG PRIMARY KEY, note_string TEXT NOT NULL, time LONG NOT NULL )");
        } else if (oldVersion == 15) {

            //Drop
            //DB - 15
            //TableUtils.dropTable(connectionSource, Punch.class, true); //Punch - Drop all
            //TableUtils.dropTable(connectionSource, Task.class, true); //Task - Drop all
            //TableUtils.dropTable(connectionSource, Job.class, true); //Job - Drop all
            //TableUtils.dropTable(connectionSource, Note.class, true); //Note - Drop all
            Dao<Task, String> taskDAO = getTaskDao();
            List<Task> tasks = taskDAO.queryForAll();

            db.execSQL("DROP TABLE IF EXISTS tasks");

            //create
            TableUtils.createTable(connectionSource, Task.class); //Task - Create Table

            for (Task t : tasks) {
                taskDAO.create(t);
            }
        } else if (oldVersion == 16) {

            //Drop
            //DB - 15
            //TableUtils.dropTable(connectionSource, Punch.class, true); //Punch - Drop all
            //TableUtils.dropTable(connectionSource, Task.class, true); //Task - Drop all
            //TableUtils.dropTable(connectionSource, Job.class, true); //Job - Drop all
            TableUtils.dropTable(connectionSource, Note.class, true); //Note - Drop all

            //create
            TableUtils.createTable(connectionSource, Note.class); //Task - Create Table

        } else if (oldVersion == 17) {

            //update db from old version
            Dao<Job, String> dao = getJobDao();
            dao.executeRaw("ALTER TABLE `jobs` ADD COLUMN fourtyHourWeek BOOLEAN DEFAULT 1;");

        } else if (oldVersion == 18) {

            Dao<Task, String> taskDAO = getTaskDao();
            List<Task> tasks = taskDAO.queryForAll();
            Job currentJob = getAllJobs().get(0);
            if (tasks.size() == 0) {

                Task newTask; //Basic element
                newTask = new Task(currentJob, 0, "Regular");
                tasks.add(newTask);
                newTask = new Task(currentJob, 1, "Lunch Break");
                newTask.setEnablePayOverride(true);
                newTask.setPayOverride(-7.25f);
                tasks.add(newTask);
                newTask = new Task(currentJob, 2, "Other Break");
                newTask.setEnablePayOverride(true);
                newTask.setPayOverride(-7.25f);
                tasks.add(newTask);
                newTask = new Task(currentJob, 3, "Travel");
                tasks.add(newTask);
                newTask = new Task(currentJob, 4, "Admin");
                tasks.add(newTask);
                newTask = new Task(currentJob, 5, "Sick Leave");
                tasks.add(newTask);
                newTask = new Task(currentJob, 6, "Personal Time");
                tasks.add(newTask);
                newTask = new Task(currentJob, 7, "Other");
                tasks.add(newTask);
                newTask = new Task(currentJob, 8, "Holiday Pay");
                tasks.add(newTask);

                for (Task t : tasks) {
                    taskDAO.createOrUpdate(t);
                }
            }
        } else if (oldVersion == 19) {

            try {
                TableUtils.dropTable(connectionSource, Job.class, true); //Job - Create Table

                TableUtils.createTable(connectionSource, Job.class); //Job - Create Table

                DateTime jobMidnight = new DateMidnight().toDateTime().minusWeeks(1)
                        .withZone(DateTimeZone.getDefault());

                Job thisJob = new Job("", 7.25f, jobMidnight, PayPeriodDuration.TWO_WEEKS);

                SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(gContext);
                try {
                    thisJob.setPayRate(Float.valueOf(pref.getString("normal_pay", "7.25")));
                } catch (NumberFormatException e) {
                    thisJob.setPayRate(7.25f);
                    Log.d(TAG, e.getMessage());
                }

                try {
                    thisJob.setOvertime(Float.valueOf(pref.getString("over_time_threshold", "40")));
                } catch (NumberFormatException e) {
                    thisJob.setOvertime(40f);
                    Log.d(TAG, e.getMessage());
                }

                try {
                    thisJob.setDoubletimeThreshold(
                            Float.valueOf(pref.getString("double_time_threshold", "60")));
                } catch (NumberFormatException e) {
                    thisJob.setDoubletimeThreshold(60f);
                    Log.d(TAG, e.getMessage());
                }

                String date[] = pref.getString("date", "2011.1.17").split("\\p{Punct}");
                String time[] = pref.getString("time", "00:00").split("\\p{Punct}");
                thisJob.setStartOfPayPeriod(new DateTime(Integer.parseInt(date[0]), Integer.parseInt(date[1]),
                        Integer.parseInt(date[2]), Integer.parseInt(time[0]), Integer.parseInt(time[1])));
                switch (Integer.parseInt(pref.getString("len_of_month", "2"))) {
                case 1:
                    thisJob.setDuration(PayPeriodDuration.ONE_WEEK);
                    break;
                case 2:
                    thisJob.setDuration(PayPeriodDuration.TWO_WEEKS);
                    break;
                case 3:
                    thisJob.setDuration(PayPeriodDuration.THREE_WEEKS);
                    break;
                case 4:
                    thisJob.setDuration(PayPeriodDuration.FOUR_WEEKS);
                    break;
                case 5:
                    thisJob.setDuration(PayPeriodDuration.FULL_MONTH);
                    break;
                case 6:
                    thisJob.setDuration(PayPeriodDuration.FIRST_FIFTEENTH);
                    break;
                default:
                    thisJob.setDuration(PayPeriodDuration.TWO_WEEKS);
                    break;
                }

                getJobDao().create(thisJob);

            } catch (SQLException e1) {
                e1.printStackTrace();
            }

        } else if (oldVersion == 20) {
            getJobDao().executeRaw(
                    "ALTER TABLE 'jobs' ADD COLUMN '" + Job.OVERTIME_OPTIONS + "'  VARCHAR default 'NONE';");
            getJobDao().executeRaw("ALTER TABLE 'jobs' ADD COLUMN '" + Job.SATURDAY_OVERRIDE_FIELD
                    + "'  VARCHAR default 'NONE';");
            getJobDao().executeRaw("ALTER TABLE 'jobs' ADD COLUMN '" + Job.SUNDAY_OVERRIDE_FIELD
                    + "'  VARCHAR default 'NONE';");
            List<Job> jobList = getAllJobs();
            for (Job job : jobList) {
                GenericRawResults<String[]> rawResults = getJobDao().queryRaw(
                        "select fourtyHourWeek,overTimeEnabled  from jobs where job_id = " + job.getID());
                String[] results = rawResults.getResults().get(0);
                if (results[0] == "0") {
                    job.setOvertimeOptions(OvertimeOptions.NONE);
                } else {
                    if (results[1] == "0") {
                        job.setOvertimeOptions(OvertimeOptions.DAY);
                    } else if (results[1] == "1") { //being paranoid
                        job.setOvertimeOptions(OvertimeOptions.WEEK);
                    }
                }
            }

            //delete stuff
            getJobDao().executeRaw("ALTER TABLE 'jobs' DROP COLUMN 'fourtyHourWeek';");
            getJobDao().executeRaw("ALTER TABLE 'jobs' DROP COLUMN 'overTimeEnabled';");
        }

    } catch (SQLException e) {
        e.printStackTrace();
        Log.e(TAG, "Could not upgrade the table for Thing", e);
    }
}

From source file:com.ehdev.chronos.lib.Chronos.java

License:Open Source License

static public boolean getDataOnSDCard(Context context, boolean oldFormat) {
    if (getCardReadStatus() == false) {

        CharSequence text = "Could not read to SD Card!.";
        int duration = Toast.LENGTH_SHORT;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();//from   w  w  w .j  av a2  s  .co m
        return false;
    }

    //Create 1 Job
    DateTime jobMidnight = DateTime.now().withDayOfWeek(7).minusWeeks(1).toDateMidnight().toDateTime()
            .withZone(DateTimeZone.getDefault());
    Job currentJob = new Job("", 10, jobMidnight, PayPeriodDuration.TWO_WEEKS);
    currentJob.setDoubletimeThreshold(60);
    currentJob.setOvertimeThreshold(40);
    currentJob.setOvertimeOptions(OvertimeOptions.WEEK);

    List<Punch> punches = new LinkedList<Punch>();
    List<Task> tasks = new LinkedList<Task>();
    List<Note> notes = new LinkedList<Note>();

    Task newTask; //Basic element
    newTask = new Task(currentJob, 0, "Regular");
    tasks.add(newTask);
    newTask = new Task(currentJob, 1, "Lunch Break");
    newTask.setEnablePayOverride(true);
    newTask.setPayOverride(0.0f);
    tasks.add(newTask);
    newTask = new Task(currentJob, 2, "Other Break");
    newTask.setEnablePayOverride(true);
    newTask.setPayOverride(0.0f);
    tasks.add(newTask);
    newTask = new Task(currentJob, 3, "Travel");
    tasks.add(newTask);
    newTask = new Task(currentJob, 4, "Admin");
    tasks.add(newTask);
    newTask = new Task(currentJob, 5, "Sick Leave");
    tasks.add(newTask);
    newTask = new Task(currentJob, 6, "Personal Time");
    tasks.add(newTask);
    newTask = new Task(currentJob, 7, "Other");
    tasks.add(newTask);
    newTask = new Task(currentJob, 8, "Holiday Pay");
    tasks.add(newTask);

    try {
        File directory = Environment.getExternalStorageDirectory();
        File backup;
        if (!oldFormat)
            backup = new File(directory, "Chronos_Backup.csv");
        else
            backup = new File(directory, "Chronos_Backup.cvs");
        if (!backup.exists()) {
            return false;
        }

        BufferedReader br = new BufferedReader(new FileReader(backup));
        String strLine = br.readLine();

        //id,date,name,task name, date in ms, job num, task num
        //1,Sun Mar 11 2012 15:46,null,Regular,1331498803269,1,1
        while (strLine != null) {
            //Log.d(TAG, strLine);
            String[] parcedString = strLine.split(",");
            long time;
            int task;

            if (!oldFormat) {
                time = Long.parseLong(parcedString[4]);
                task = Integer.parseInt(parcedString[6]);
            } else {
                time = Long.parseLong(parcedString[1]);
                task = Integer.parseInt(parcedString[2]);
                //System.out.println(parcedString.length);

                if (parcedString.length > 4 && StringUtils.isNotBlank(parcedString[4])) {
                    String noteContent = parcedString[4];
                    Note note = new Note(Chronos.getDateFromStartOfPayPeriod(currentJob, new DateTime(time)),
                            currentJob, noteContent);
                    notes.add(note);
                }
            }

            //Job iJob, Task iPunchTask, DateTime iTime
            punches.add(new Punch(currentJob, tasks.get(task - 1), new DateTime(time)));
            strLine = br.readLine();
        }
    } catch (Exception e) {

        e.printStackTrace();
        if (e != null && e.getCause() != null) {
            Log.e(TAG, e.getCause().toString());
        }
        return false;
    }

    //Log.d(TAG, "Number of punches: " + punches.size());
    try {
        Chronos chronos = new Chronos(context);
        TableUtils.dropTable(chronos.getConnectionSource(), Punch.class, true); //Punch - Drop all
        TableUtils.dropTable(chronos.getConnectionSource(), Task.class, true); //Task - Drop all
        TableUtils.dropTable(chronos.getConnectionSource(), Job.class, true); //Job - Drop all
        TableUtils.dropTable(chronos.getConnectionSource(), Note.class, true); //Note - Drop all

        //Recreate DB
        TableUtils.createTable(chronos.getConnectionSource(), Punch.class); //Punch - Create Table
        TableUtils.createTable(chronos.getConnectionSource(), Task.class); //Task - Create Table
        TableUtils.createTable(chronos.getConnectionSource(), Job.class); //Job - Create Table
        TableUtils.createTable(chronos.getConnectionSource(), Note.class); //Task - Create Table

        //recreate entries
        Dao<Task, String> taskDAO = chronos.getTaskDao();
        Dao<Job, String> jobDAO = chronos.getJobDao();
        Dao<Punch, String> punchDOA = chronos.getPunchDao();
        Dao<Note, String> noteDOA = chronos.getNoteDao();

        jobDAO.create(currentJob);

        for (Task t : tasks) {
            taskDAO.create(t);
        }

        for (Punch p : punches) {
            punchDOA.create(p);
        }

        HashMap<DateTime, Note> merger = new HashMap<DateTime, Note>();
        for (Note n : notes) {
            merger.put(n.getTime(), n);
        }

        for (DateTime dt : merger.keySet()) {
            noteDOA.create(merger.get(dt));
        }

        chronos.close();

    } catch (Exception e) {
        Log.e(TAG, e.getMessage());
        return false;
    }

    return true;
}

From source file:com.ehdev.chronos.lib.JsonToSql.java

License:Open Source License

private void prepareJob(Job thisJob) {
    if (null == thisJob.getName())
        thisJob.setName("Default Job");

    if (null == thisJob.getDuration())
        thisJob.setDuration(PayPeriodDuration.TWO_WEEKS);

    if (null == thisJob.getStartOfPayPeriod() || 2010 > thisJob.getStartOfPayPeriod().getYear())
        thisJob.setStartOfPayPeriod(DateTime.now().withDayOfWeek(7).minusWeeks(1).toDateMidnight().toDateTime()
                .withZone(DateTimeZone.getDefault()));
}

From source file:com.ehdev.chronos.lib.types.holders.PayPeriodHolder.java

License:Open Source License

/**
 * Gets the day's in this pay period/*ww  w . j a  v a 2  s .c om*/
 * @return int of the day's in the the pay period
 */
public int getDays() {

    switch (gJob.getDuration()) {
    case ONE_WEEK:
        return 7;
    case TWO_WEEKS:
        return 7 * 2;
    case THREE_WEEKS:
        return 7 * 3;
    case FOUR_WEEKS:
        return 7 * 4;
    case FULL_MONTH:
        if (gStartOfPP == null)
            gStartOfPP = DateTime.now();
        return gStartOfPP.dayOfMonth().getMaximumValue();
    case FIRST_FIFTEENTH:
        if (gStartOfPP == null)
            gStartOfPP = DateTime.now();

        if (gStartOfPP.getDayOfMonth() < 15)
            return 14;
        else
            return gStartOfPP.dayOfMonth().getMaximumValue() - 14;
    }
    return 0;
}

From source file:com.ehdev.chronos.lib.types.holders.PayPeriodHolder.java

License:Open Source License

/**
 * Will do the calculations for the start and end of the process
 *//*  ww  w .  jav a2 s .co  m*/
public void generate() {
    //Get the start and end of pay period
    DateTime startOfPP = gJob.getStartOfPayPeriod();
    gDuration = gJob.getDuration();
    DateTime endOfPP = DateTime.now(); //Today

    long duration = endOfPP.getMillis() - startOfPP.getMillis();

    DateTimeZone startZone = startOfPP.getZone();
    DateTimeZone endZone = endOfPP.getZone();

    long offset = endZone.getOffset(endOfPP) - startZone.getOffset(startOfPP);

    int weeks = (int) ((duration + offset) / 1000 / 60 / 60 / 24 / 7);

    /*
    System.out.println("end of pp: " + endOfPP);
    System.out.println("start of pp: " + startOfPP);
    System.out.println("dur: " + duration);
    System.out.println("weeks diff: " + weeks);
    */

    switch (gDuration) {
    case ONE_WEEK:
        //weeks = weeks;
        startOfPP = startOfPP.plusWeeks(weeks);
        endOfPP = startOfPP.plusWeeks(1);
        break;
    case TWO_WEEKS:
        weeks = weeks / 2;
        startOfPP = startOfPP.plusWeeks(weeks * 2);
        endOfPP = startOfPP.plusWeeks(2);
        break;
    case THREE_WEEKS:
        weeks = weeks / 3;
        startOfPP = startOfPP.plusWeeks(weeks * 3);
        endOfPP = startOfPP.plusWeeks(3);
        break;
    case FOUR_WEEKS:
        weeks = weeks / 4;
        startOfPP = startOfPP.plusWeeks(weeks * 4);
        endOfPP = startOfPP.plusWeeks(4);
        break;
    case FULL_MONTH:
        //in this case, endOfPP is equal to now
        startOfPP = DateMidnight.now().toDateTime().withDayOfMonth(1);
        endOfPP = startOfPP.plusMonths(1);

        break;
    case FIRST_FIFTEENTH:
        DateTime now = DateTime.now();
        if (now.getDayOfMonth() >= 15) {
            startOfPP = now.withDayOfMonth(15);
            endOfPP = startOfPP.plusDays(20).withDayOfMonth(1);
        } else {
            startOfPP = now.withDayOfMonth(1);
            endOfPP = now.withDayOfMonth(15);
        }
        break;
    default:
        break;
    }

    if (startOfPP.isAfter(DateTime.now())) {
        startOfPP = startOfPP.minusWeeks(getDays() / 7);
        endOfPP = endOfPP.minusWeeks(getDays() / 7);
    }

    gStartOfPP = startOfPP;
    gEndOfPP = endOfPP;
}

From source file:com.engine.conn.java

@Override
public void run() {
    //QuoteServletData servletdata = new QuoteServletData(request.getParameter("id"));
    QuoteData data = new QuoteData();
    //String warehouseZip = lookupNearestWarehouse(request.getParameter("originzip"));
    data.setUserId("");
    data.setPassword("");
    data.setPickupDate(DateTime.now().toLocalDate().toString());
    data.setSaveQuote("false");
    data.setReturnMultipleCarriers("true");
    //data.setOriginZip(request.getParameter("originzip"));
    data.setNumberOfPallets(pallets);//from   w  ww.jav  a  2s  .  c  o m
    //data.setDestinationZip(warehouseZip);
    // data.setOriginZip(servletdata.getOriginZip());
    //data.setDestinationZip(servletdata.getWarehouseZip());
    Item item = new Item("0", (haz.equals("1") ? "85" : "65"), weight);
    ArrayList<Item> items = new ArrayList<>();
    items.add(item);
    data.setItems(items);
    //List<Item> tempItems = servletdata.getItems();
    //data.setItems((ArrayList<Item>) tempItems);
    data.setNotifyPriorDelivery(true);
    ArrayList<ResponseQuoteData> responseData = null;
    String productsWeight = weight;
    String productsClass = haz.equals("1") ? "haz" : "non-haz";
    //double tempW = 0.0;
    //String productsWeight = "";
    //String productsClass = "";
    //for(int i = 0; i < tempItems.size(); i++){
    //        tempW = Double.valueOf(tempItems.get(i).getItemWeight());
    //    try{
    //    }catch(Exception e){e.printStackTrace();}
    //    productsClass += tempItems.get(i).getItemClass()+ "; ";
    //}
    //productsWeight = String.valueOf(tempW);
    try {
        //Quote quote = new Quote(data);
        //responseData = quote.getResponseData();
        java.sql.Connection con = null;
        java.sql.PreparedStatement stmt = null;
        java.sql.ResultSet rs = null;
        con = ControlPanelPool.getInstance().getConnection();
        /*
        for (int i = 0; i < responseData.size(); i++) {
            stmt = con.prepareStatement("INSERT INTO [dbo].[tblEchoCarrier] ([CarrierName] ,[TransitDays] ,[PickupDate] ,[SCAC] ,[OriginZip] ,[DestinationZip] ,[OriginTerminalContact] ,[OriginTerminalAddress] ,[OriginTerminalPhone1] ,[OriginTerminalPhone2] ,[OriginTerminalCsz] ,[DestinationTerminalContact] ,[DestinationTerminalAddress] ,[DestinationTerminalPhone1] ,[DestinationTerminalPhone2] ,[DestinationTerminalCsz] ,[BaseCharge] ,[Discount] ,[DiscountPercent] ,[FuelCharge] ,[AccessorialCharge] ,[TotalCharge] ,[ItemClass] ,[ItemWeight] ,[Leg] ,[LegUid], [Pallets], [timestamp]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE())");
            stmt.setString(1, responseData.get(i).getCarrierName());
            stmt.setString(2, responseData.get(i).getTransitDays());
            stmt.setString(3, responseData.get(i).getPickupDate());
            stmt.setString(4, responseData.get(i).getSCAC());
            stmt.setString(5, request.getParameter("originzip"));
            stmt.setString(6, warehouseZip);
            stmt.setString(7, responseData.get(i).getOriginTerminalContact());
            stmt.setString(8, responseData.get(i).getOriginTerminalAddress());
            stmt.setString(9, responseData.get(i).getOriginTermainlPhone1());
            stmt.setString(10, responseData.get(i).getOrigintermanilPhone2());
            stmt.setString(11, responseData.get(i).getOriginTerminalCsz());
            stmt.setString(12, responseData.get(i).getDestinationTerminalContact());
            stmt.setString(13, responseData.get(i).getDestinationTerminalAddress());
            stmt.setString(14, responseData.get(i).getDestinationTerminalPhone1());
            stmt.setString(15, responseData.get(i).getDestinationTerminalPhone2());
            stmt.setString(16, responseData.get(i).getDestinationTerminalCsz());
            stmt.setString(17, responseData.get(i).getBaseCharge());
            stmt.setString(18, responseData.get(i).getDiscount());
            stmt.setString(19, responseData.get(i).getDiscountPercent());
            stmt.setString(20, responseData.get(i).getFuelCharge());
            stmt.setString(21, responseData.get(i).getAccesorialCharge());
            stmt.setString(22, responseData.get(i).getTotalCharge());
            stmt.setString(23, productsClass);
            stmt.setString(24, productsWeight);
            stmt.setString(25, "1");
            stmt.setString(26, uuid);
            stmt.setString(27, request.getParameter("pallets"));
            stmt.executeUpdate();
        }
        data.setOriginZip(warehouseZip);
        data.setDestinationZip(request.getParameter("destinationzip"));
        data.setNotifyPriorDelivery(true);
        quote = new Quote(data);
        responseData = quote.getResponseData();
        for (int i = 0; i < responseData.size(); i++) {
            stmt = con.prepareStatement("INSERT INTO [dbo].[tblEchoCarrier] ([CarrierName] ,[TransitDays] ,[PickupDate] ,[SCAC] ,[OriginZip] ,[DestinationZip] ,[OriginTerminalContact] ,[OriginTerminalAddress] ,[OriginTerminalPhone1] ,[OriginTerminalPhone2] ,[OriginTerminalCsz] ,[DestinationTerminalContact] ,[DestinationTerminalAddress] ,[DestinationTerminalPhone1] ,[DestinationTerminalPhone2] ,[DestinationTerminalCsz] ,[BaseCharge] ,[Discount] ,[DiscountPercent] ,[FuelCharge] ,[AccessorialCharge] ,[TotalCharge] ,[ItemClass] ,[ItemWeight] ,[Leg] ,[LegUid], [Pallets], [timestamp]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE())");
            stmt.setString(1, responseData.get(i).getCarrierName());
            stmt.setString(2, responseData.get(i).getTransitDays());
            stmt.setString(3, responseData.get(i).getPickupDate());
            stmt.setString(4, responseData.get(i).getSCAC());
            stmt.setString(5, warehouseZip);
            stmt.setString(6, request.getParameter("destinationzip"));
            stmt.setString(7, responseData.get(i).getOriginTerminalContact());
            stmt.setString(8, responseData.get(i).getOriginTerminalAddress());
            stmt.setString(9, responseData.get(i).getOriginTermainlPhone1());
            stmt.setString(10, responseData.get(i).getOrigintermanilPhone2());
            stmt.setString(11, responseData.get(i).getOriginTerminalCsz());
            stmt.setString(12, responseData.get(i).getDestinationTerminalContact());
            stmt.setString(13, responseData.get(i).getDestinationTerminalAddress());
            stmt.setString(14, responseData.get(i).getDestinationTerminalPhone1());
            stmt.setString(15, responseData.get(i).getDestinationTerminalPhone2());
            stmt.setString(16, responseData.get(i).getDestinationTerminalCsz());
            stmt.setString(17, responseData.get(i).getBaseCharge());
            stmt.setString(18, responseData.get(i).getDiscount());
            stmt.setString(19, responseData.get(i).getDiscountPercent());
            stmt.setString(20, responseData.get(i).getFuelCharge());
            stmt.setString(21, responseData.get(i).getAccesorialCharge());
            stmt.setString(22, responseData.get(i).getTotalCharge());
            stmt.setString(23, productsClass);
            stmt.setString(24, productsWeight);
            stmt.setString(25, "2");
            stmt.setString(26, uuid);
            stmt.setString(27, request.getParameter("pallets"));
            stmt.executeUpdate();
        }*/
        stmt = con.prepareStatement(
                "INSERT INTO [dbo].[tblEchoCarrier] ([CarrierName] ,[TransitDays] ,[PickupDate] ,[SCAC] ,[OriginZip] ,[DestinationZip] ,[OriginTerminalContact] ,[OriginTerminalAddress] ,[OriginTerminalPhone1] ,[OriginTerminalPhone2] ,[OriginTerminalCsz] ,[DestinationTerminalContact] ,[DestinationTerminalAddress] ,[DestinationTerminalPhone1] ,[DestinationTerminalPhone2] ,[DestinationTerminalCsz] ,[BaseCharge] ,[Discount] ,[DiscountPercent] ,[FuelCharge] ,[AccessorialCharge] ,[TotalCharge] ,[ItemClass] ,[ItemWeight] ,[Leg] ,[LegUid], [Pallets],[timestamp]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE())");
        data.setOriginZip(origin);
        data.setDestinationZip(destination);
        Quote quote = new Quote(data);
        responseData = quote.getResponseData();
        for (int i = 0; i < responseData.size(); i++) {
            stmt.setString(1, responseData.get(i).getCarrierName());
            stmt.setString(2, responseData.get(i).getTransitDays());
            stmt.setString(3, responseData.get(i).getPickupDate());
            stmt.setString(4, responseData.get(i).getSCAC());
            stmt.setString(5, origin);
            stmt.setString(6, destination);
            stmt.setString(7, responseData.get(i).getOriginTerminalContact());
            stmt.setString(8, responseData.get(i).getOriginTerminalAddress());
            stmt.setString(9, responseData.get(i).getOriginTermainlPhone1());
            stmt.setString(10, responseData.get(i).getOrigintermanilPhone2());
            stmt.setString(11, responseData.get(i).getOriginTerminalCsz());
            stmt.setString(12, responseData.get(i).getDestinationTerminalContact());
            stmt.setString(13, responseData.get(i).getDestinationTerminalAddress());
            stmt.setString(14, responseData.get(i).getDestinationTerminalPhone1());
            stmt.setString(15, responseData.get(i).getDestinationTerminalPhone2());
            stmt.setString(16, responseData.get(i).getDestinationTerminalCsz());
            stmt.setString(17, responseData.get(i).getBaseCharge());
            stmt.setString(18, responseData.get(i).getDiscount());
            stmt.setString(19, responseData.get(i).getDiscountPercent());
            stmt.setString(20, responseData.get(i).getFuelCharge());
            stmt.setString(21, responseData.get(i).getAccesorialCharge());
            stmt.setString(22, responseData.get(i).getTotalCharge());
            stmt.setString(23, productsClass);
            stmt.setString(24, productsWeight);
            stmt.setString(25, "0");
            stmt.setString(26, uuid);
            stmt.setString(27, pallets);
            stmt.executeUpdate();
        }
        con.close();
    } catch (Exception ex) {
        Logger.getLogger(QuoteServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:com.engine.QuoteServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//from w  w w  .  j a va 2s.co m
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    /*if (request.getParameter("id") != null) {
    QuoteServletData servletdata = new QuoteServletData(request.getParameter("id"));
    QuoteData data = new QuoteData();
    data.setUserId("ER33218");
    data.setPassword("Echo3218");
    data.setPickupDate(DateTime.now().toLocalDate().toString());
    data.setSaveQuote("false");
    data.setReturnMultipleCarriers("true");
    data.setOriginZip(servletdata.getOriginZip());
    data.setDestinationZip(servletdata.getWarehouseZip());
    //Item item = new Item("0", servletdata.getProductClass(), servletdata.getProductWeight());
    //ArrayList<Item> items = new ArrayList<>();
    //items.add(item);
    //data.setItems(items);
    List<Item> tempItems = servletdata.getItems();
    data.setItems((ArrayList<Item>) tempItems);
    data.setNotifyPriorDelivery(true);
    ArrayList<ResponseQuoteData> responseData = null;
    double tempW = 0.0;
    String productsWeight = "";
    String productsClass = "";
    for (int i = 0; i < tempItems.size(); i++) {
        try {
            tempW = Double.valueOf(tempItems.get(i).getItemWeight());
        } catch (Exception e) {
            e.printStackTrace();
        }
        productsClass += tempItems.get(i).getItemClass() + "; ";
    }
    productsWeight = String.valueOf(tempW);
    try {
        Quote quote = new Quote(data);
        responseData = quote.getResponseData();
        String uuid = UUID.randomUUID().toString();
        java.sql.Connection con = null;
        java.sql.PreparedStatement stmt = null;
        java.sql.ResultSet rs = null;
        con = ControlPanelPool.getInstance().getConnection();
        for (int i = 0; i < responseData.size(); i++) {
            stmt = con.prepareStatement("INSERT INTO [dbo].[tblEchoCarrier] ([z4ID] ,[CarrierName] ,[TransitDays] ,[PickupDate] ,[SCAC] ,[OriginZip] ,[DestinationZip] ,[OriginTerminalContact] ,[OriginTerminalAddress] ,[OriginTerminalPhone1] ,[OriginTerminalPhone2] ,[OriginTerminalCsz] ,[DestinationTerminalContact] ,[DestinationTerminalAddress] ,[DestinationTerminalPhone1] ,[DestinationTerminalPhone2] ,[DestinationTerminalCsz] ,[BaseCharge] ,[Discount] ,[DiscountPercent] ,[FuelCharge] ,[AccessorialCharge] ,[TotalCharge] ,[ItemClass] ,[ItemWeight] ,[Leg] ,[LegUid], [timestamp]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE())");
            stmt.setString(1, request.getParameter("id"));
            stmt.setString(2, responseData.get(i).getCarrierName());
            stmt.setString(3, responseData.get(i).getTransitDays());
            stmt.setString(4, responseData.get(i).getPickupDate());
            stmt.setString(5, responseData.get(i).getSCAC());
            stmt.setString(6, servletdata.getOriginZip());
            stmt.setString(7, servletdata.getWarehouseZip());
            stmt.setString(8, responseData.get(i).getOriginTerminalContact());
            stmt.setString(9, responseData.get(i).getOriginTerminalAddress());
            stmt.setString(10, responseData.get(i).getOriginTermainlPhone1());
            stmt.setString(11, responseData.get(i).getOrigintermanilPhone2());
            stmt.setString(12, responseData.get(i).getOriginTerminalCsz());
            stmt.setString(13, responseData.get(i).getDestinationTerminalContact());
            stmt.setString(14, responseData.get(i).getDestinationTerminalAddress());
            stmt.setString(15, responseData.get(i).getDestinationTerminalPhone1());
            stmt.setString(16, responseData.get(i).getDestinationTerminalPhone2());
            stmt.setString(17, responseData.get(i).getDestinationTerminalCsz());
            stmt.setString(18, responseData.get(i).getBaseCharge());
            stmt.setString(19, responseData.get(i).getDiscount());
            stmt.setString(20, responseData.get(i).getDiscountPercent());
            stmt.setString(21, responseData.get(i).getFuelCharge());
            stmt.setString(22, responseData.get(i).getAccesorialCharge());
            stmt.setString(23, responseData.get(i).getTotalCharge());
            stmt.setString(24, productsClass);
            stmt.setString(25, productsWeight);
            stmt.setString(26, "1");
            stmt.setString(27, uuid);
            stmt.executeUpdate();
        }
        data.setOriginZip(servletdata.getWarehouseZip());
        data.setDestinationZip(servletdata.getDestinationZip());
        data.setNotifyPriorDelivery(true);
        quote = new Quote(data);
        responseData = quote.getResponseData();
        for (int i = 0; i < responseData.size(); i++) {
            stmt = con.prepareStatement("INSERT INTO [dbo].[tblEchoCarrier] ([z4ID] ,[CarrierName] ,[TransitDays] ,[PickupDate] ,[SCAC] ,[OriginZip] ,[DestinationZip] ,[OriginTerminalContact] ,[OriginTerminalAddress] ,[OriginTerminalPhone1] ,[OriginTerminalPhone2] ,[OriginTerminalCsz] ,[DestinationTerminalContact] ,[DestinationTerminalAddress] ,[DestinationTerminalPhone1] ,[DestinationTerminalPhone2] ,[DestinationTerminalCsz] ,[BaseCharge] ,[Discount] ,[DiscountPercent] ,[FuelCharge] ,[AccessorialCharge] ,[TotalCharge] ,[ItemClass] ,[ItemWeight] ,[Leg] ,[LegUid],[timestamp]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE())");
            stmt.setString(1, request.getParameter("id"));
            stmt.setString(2, responseData.get(i).getCarrierName());
            stmt.setString(3, responseData.get(i).getTransitDays());
            stmt.setString(4, responseData.get(i).getPickupDate());
            stmt.setString(5, responseData.get(i).getSCAC());
            stmt.setString(6, servletdata.getWarehouseZip());
            stmt.setString(7, servletdata.getDestinationZip());
            stmt.setString(8, responseData.get(i).getOriginTerminalContact());
            stmt.setString(9, responseData.get(i).getOriginTerminalAddress());
            stmt.setString(10, responseData.get(i).getOriginTermainlPhone1());
            stmt.setString(11, responseData.get(i).getOrigintermanilPhone2());
            stmt.setString(12, responseData.get(i).getOriginTerminalCsz());
            stmt.setString(13, responseData.get(i).getDestinationTerminalContact());
            stmt.setString(14, responseData.get(i).getDestinationTerminalAddress());
            stmt.setString(15, responseData.get(i).getDestinationTerminalPhone1());
            stmt.setString(16, responseData.get(i).getDestinationTerminalPhone2());
            stmt.setString(17, responseData.get(i).getDestinationTerminalCsz());
            stmt.setString(18, responseData.get(i).getBaseCharge());
            stmt.setString(19, responseData.get(i).getDiscount());
            stmt.setString(20, responseData.get(i).getDiscountPercent());
            stmt.setString(21, responseData.get(i).getFuelCharge());
            stmt.setString(22, responseData.get(i).getAccesorialCharge());
            stmt.setString(23, responseData.get(i).getTotalCharge());
            stmt.setString(24, productsClass);
            stmt.setString(25, productsWeight);
            stmt.setString(26, "2");
            stmt.setString(27, uuid);
            stmt.executeUpdate();
        }
        data.setOriginZip(servletdata.getOriginZip());
        data.setDestinationZip(servletdata.getDestinationZip());
        data.setNotifyPriorDelivery(false);
        quote = new Quote(data);
        responseData = quote.getResponseData();
        for (int i = 0; i < responseData.size(); i++) {
            stmt = con.prepareStatement("INSERT INTO [dbo].[tblEchoCarrier] ([z4ID] ,[CarrierName] ,[TransitDays] ,[PickupDate] ,[SCAC] ,[OriginZip] ,[DestinationZip] ,[OriginTerminalContact] ,[OriginTerminalAddress] ,[OriginTerminalPhone1] ,[OriginTerminalPhone2] ,[OriginTerminalCsz] ,[DestinationTerminalContact] ,[DestinationTerminalAddress] ,[DestinationTerminalPhone1] ,[DestinationTerminalPhone2] ,[DestinationTerminalCsz] ,[BaseCharge] ,[Discount] ,[DiscountPercent] ,[FuelCharge] ,[AccessorialCharge] ,[TotalCharge] ,[ItemClass] ,[ItemWeight] ,[Leg] ,[LegUid],[timestamp]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE())");
            stmt.setString(1, request.getParameter("id"));
            stmt.setString(2, responseData.get(i).getCarrierName());
            stmt.setString(3, responseData.get(i).getTransitDays());
            stmt.setString(4, responseData.get(i).getPickupDate());
            stmt.setString(5, responseData.get(i).getSCAC());
            stmt.setString(6, servletdata.getOriginZip());
            stmt.setString(7, servletdata.getDestinationZip());
            stmt.setString(8, responseData.get(i).getOriginTerminalContact());
            stmt.setString(9, responseData.get(i).getOriginTerminalAddress());
            stmt.setString(10, responseData.get(i).getOriginTermainlPhone1());
            stmt.setString(11, responseData.get(i).getOrigintermanilPhone2());
            stmt.setString(12, responseData.get(i).getOriginTerminalCsz());
            stmt.setString(13, responseData.get(i).getDestinationTerminalContact());
            stmt.setString(14, responseData.get(i).getDestinationTerminalAddress());
            stmt.setString(15, responseData.get(i).getDestinationTerminalPhone1());
            stmt.setString(16, responseData.get(i).getDestinationTerminalPhone2());
            stmt.setString(17, responseData.get(i).getDestinationTerminalCsz());
            stmt.setString(18, responseData.get(i).getBaseCharge());
            stmt.setString(19, responseData.get(i).getDiscount());
            stmt.setString(20, responseData.get(i).getDiscountPercent());
            stmt.setString(21, responseData.get(i).getFuelCharge());
            stmt.setString(22, responseData.get(i).getAccesorialCharge());
            stmt.setString(23, responseData.get(i).getTotalCharge());
            stmt.setString(24, productsClass);
            stmt.setString(25, productsWeight);
            stmt.setString(26, "0");
            stmt.setString(27, uuid);
            stmt.executeUpdate();
        }
        con.close();
    } catch (Exception ex) {
        Logger.getLogger(QuoteServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
    }*/
    if (request.getParameter("format") == null && request.getParameter("originzip") != null
            && request.getParameter("destinationzip") != null && request.getParameter("weight") != null
            && request.getParameter("haz") != null && request.getParameter("pallets") != null) {
        response.setContentType("text/html;charset=UTF-8");
        String uuid = UUID.randomUUID().toString();
        java.sql.Connection con = null;
        java.sql.PreparedStatement stmt = null;
        try {
            con = ControlPanelPool.getInstance().getConnection();
            stmt = con.prepareStatement("DELETE tblEchoTemp");
            stmt.executeUpdate();
            stmt = con.prepareStatement("INSERT INTO tblEchoTemp (uid) VALUES (?)");
            stmt.setString(1, uuid);
            stmt.executeUpdate();
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(QuoteServlet.class.getName()).log(Level.SEVERE, null, ex);
        } catch (PropertyVetoException ex) {
            Logger.getLogger(QuoteServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
        Thread t = new Thread((Runnable) new conn(request.getParameter("originzip"),
                request.getParameter("destinationzip"), request.getParameter("weight"),
                request.getParameter("haz"), request.getParameter("pallets"), uuid));
        t.start();
    }
    if (request.getParameter("format") != null && request.getParameter("originzip") != null
            && request.getParameter("destinationzip") != null && request.getParameter("weight") != null
            && request.getParameter("haz") != null && request.getParameter("pallets") != null) {
        response.setContentType("application/json");
        try {
            QuoteData data = new QuoteData();
            data.setUserId("");
            data.setPassword("");
            data.setPickupDate(DateTime.now().toLocalDate().toString());
            data.setSaveQuote("false");
            data.setReturnMultipleCarriers("true");
            data.setNumberOfPallets(request.getParameter("pallets"));
            Item item = new Item("0", (request.getParameter("haz").equals("1") ? "85" : "65"),
                    request.getParameter("weight"));
            ArrayList<Item> items = new ArrayList<>();
            items.add(item);
            data.setItems(items);
            data.setNotifyPriorDelivery(true);
            ArrayList<ResponseQuoteData> responseData = null;
            data.setOriginZip(request.getParameter("originzip"));
            data.setDestinationZip(request.getParameter("destinationzip"));
            Quote quote = new Quote(data);
            responseData = quote.getResponseData();
            ResponseObject obj = new ResponseObject();
            if (request.getParameter("weight").length() > 4) {
                obj.StatusCode = 2;
                obj.Message = "Weight must be 1-9999";
            }
            obj.Resources = responseData;
            response.getWriter().write(new Gson().toJson(obj));
        } catch (Exception ex) {
            Logger.getLogger(QuoteServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        ResponseObject obj = new ResponseObject();
        obj.StatusCode = 2;
        obj.Message = "Invalid parameters";
        response.getWriter().write(new Gson().toJson(obj));
    }
}

From source file:com.enitalk.configs.DateCache.java

public NavigableSet<DateTime> days(JsonNode tree, String tz, JsonNode teacherNode) {
    ConcurrentSkipListSet<DateTime> dates = new ConcurrentSkipListSet<>();

    Iterator<JsonNode> els = tree.elements();
    DateTimeZone dz = DateTimeZone.forID(tz);
    DateTimeFormatter hour = DateTimeFormat.forPattern("HH:mm").withZone(dz);

    DateTime today = DateTime.now().millisOfDay().setCopy(0);
    while (els.hasNext()) {

        JsonNode el = els.next();//  w w  w.java  2s  .co  m
        String day = el.path("day").asText();

        boolean plus = today.getDayOfWeek() > days.get(day);
        if (el.has("start") && el.has("end")) {
            DateTime start = hour.parseDateTime(el.path("start").asText()).dayOfMonth()
                    .setCopy(today.getDayOfMonth()).monthOfYear().setCopy(today.getMonthOfYear()).year()
                    .setCopy(today.getYear()).withDayOfWeek(days.get(day)).plusWeeks(plus ? 1 : 0);
            DateTime end = hour.parseDateTime(el.path("end").asText()).dayOfMonth()
                    .setCopy(today.getDayOfMonth()).monthOfYear().setCopy(today.getMonthOfYear()).year()
                    .setCopy(today.getYear()).withDayOfWeek(days.get(day)).plusWeeks(plus ? 1 : 0);

            Hours hours = Hours.hoursBetween(start, end);
            int hh = hours.getHours() + 1;

            while (hh-- > 0) {
                dates.add(start.plusHours(hh).toDateTime(DateTimeZone.UTC));
            }
        } else {
            List<String> datesAv = jackson.convertValue(el.path("times"), List.class);
            logger.info("Array of dates {} {}", datesAv, day);

            datesAv.forEach((String dd) -> {
                DateTime date = hour.parseDateTime(dd).dayOfMonth().setCopy(today.getDayOfMonth()).monthOfYear()
                        .setCopy(today.getMonthOfYear()).year().setCopy(today.getYear())
                        .withDayOfWeek(days.get(day)).plusWeeks(plus ? 1 : 0);
                dates.add(date.toDateTime(DateTimeZone.UTC));
            });

        }

    }

    final TreeSet<DateTime> addWeek = new TreeSet<>();
    for (int i = 1; i < 2; i++) {
        for (DateTime e : dates) {
            addWeek.add(e.plusWeeks(i));

        }
    }

    dates.addAll(addWeek);

    DateTime nowUtc = DateTime.now().toDateTime(DateTimeZone.UTC);
    nowUtc = nowUtc.plusHours(teacherNode.path("notice").asInt(2));

    NavigableSet<DateTime> ss = dates.tailSet(nowUtc, true);

    return ss;

}