Package com.baulsupp.kolja.widefinder

Source Code of com.baulsupp.kolja.widefinder.JodaUtil

package com.baulsupp.kolja.widefinder;

import java.util.ArrayList;
import java.util.List;

import org.joda.time.DateTime;
import org.joda.time.DateTimeFieldType;
import org.joda.time.Partial;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.DateTimeFormatterBuilder;

public final class JodaUtil {
  public static final char MONTH = 'M';
  public static final char DAY = 'd';
  public static final char HOUR = 'H';
  public static final char MINUTE = 'm';
  public static final char SECOND = 's';
  public static final char MILLIS = 'S';

  private JodaUtil() {
  }

  public static Partial buildPartial(DateTime time, DateTimeFieldType... types) {
    int[] values = new int[types.length];

    for (int i = 0; i < types.length; i++) {
      values[i] = time.get(types[i]);
    }

    Partial range = new Partial(types, values);
    return range;
  }

  public static DateTimeFieldType[] parseFields(String fields) {
    List<DateTimeFieldType> types = new ArrayList<DateTimeFieldType>();

    for (char c : fields.toCharArray()) {
      switch (c) {
      case MONTH:
        types.add(DateTimeFieldType.monthOfYear());
        break;
      case DAY:
        types.add(DateTimeFieldType.dayOfMonth());
        break;
      case HOUR:
        types.add(DateTimeFieldType.hourOfDay());
        break;
      case MINUTE:
        types.add(DateTimeFieldType.minuteOfHour());
        break;
      case SECOND:
        types.add(DateTimeFieldType.secondOfMinute());
        break;
      case MILLIS:
        types.add(DateTimeFieldType.millisOfSecond());
        break;
      default:
        throw new IllegalArgumentException("unknown type " + c);
      }
    }

    return types.toArray(new DateTimeFieldType[0]);
  }

  public static DateTimeFormatter buildDateTimeFormatter(DateTimeFieldType... dateTimeFieldTypes) {
    DateTimeFormatterBuilder b = new DateTimeFormatterBuilder();
    for (DateTimeFieldType dt : dateTimeFieldTypes) {
      b.appendText(dt);
    }
    return b.toFormatter();
  }
}
TOP

Related Classes of com.baulsupp.kolja.widefinder.JodaUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.