Package anvil.core.time

Source Code of anvil.core.time.TimeModule

/*
* $Id: TimeModule.java,v 1.19 2002/09/16 08:05:03 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.core.time;

import anvil.core.Any;
import anvil.script.Context;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;
import java.text.SimpleDateFormat;
import java.text.DateFormatSymbols;
import java.text.ParseException;

/// @module anvil.time
/// Timestamps and calendar.
/**
* class TimeModule
*
* @author: Jani Lehtim�ki
*/
public class TimeModule
{
  public static final Any ERA = Any.create(Calendar.ERA);
  public static final Any YEAR = Any.create(Calendar.YEAR);
  public static final Any MONTH = Any.create(Calendar.MONTH);
  public static final Any WEEK_OF_YEAR = Any.create(Calendar.WEEK_OF_YEAR);
  public static final Any WEEK_OF_MONTH = Any.create(Calendar.WEEK_OF_MONTH);
  public static final Any DATE = Any.create(Calendar.DATE);
  public static final Any DAY_OF_MONTH = Any.create(Calendar.DAY_OF_MONTH);
  public static final Any DAY_OF_YEAR = Any.create(Calendar.DAY_OF_YEAR);
  public static final Any DAY_OF_WEEK = Any.create(Calendar.DAY_OF_WEEK);
  public static final Any DAY_OF_WEEK_IN_MONTH = Any.create(Calendar.DAY_OF_WEEK_IN_MONTH);
  public static final Any AM_PM = Any.create(Calendar.AM_PM);
  public static final Any HOUR = Any.create(Calendar.HOUR);
  public static final Any HOUR_OF_DAY = Any.create(Calendar.HOUR_OF_DAY);
  public static final Any MINUTE = Any.create(Calendar.MINUTE);
  public static final Any SECOND = Any.create(Calendar.SECOND);
  public static final Any MILLISECOND = Any.create(Calendar.MILLISECOND);
  public static final Any ZONE_OFFSET = Any.create(Calendar.ZONE_OFFSET);
  public static final Any DST_OFFSET = Any.create(Calendar.DST_OFFSET);
  public static final Any FIELD_COUNT = Any.create(Calendar.FIELD_COUNT);
  public static final Any SUNDAY = Any.create(Calendar.SUNDAY);
  public static final Any MONDAY = Any.create(Calendar.MONDAY);
  public static final Any TUESDAY = Any.create(Calendar.TUESDAY);
  public static final Any WEDNESDAY = Any.create(Calendar.WEDNESDAY);
  public static final Any THURSDAY = Any.create(Calendar.THURSDAY);
  public static final Any FRIDAY = Any.create(Calendar.FRIDAY);
  public static final Any SATURDAY = Any.create(Calendar.SATURDAY);
  public static final Any JANUARY = Any.create(Calendar.JANUARY);
  public static final Any FEBRUARY = Any.create(Calendar.FEBRUARY);
  public static final Any MARCH = Any.create(Calendar.MARCH);
  public static final Any APRIL = Any.create(Calendar.APRIL);
  public static final Any MAY = Any.create(Calendar.MAY);
  public static final Any JUNE = Any.create(Calendar.JUNE);
  public static final Any JULY = Any.create(Calendar.JULY);
  public static final Any AUGUST = Any.create(Calendar.AUGUST);
  public static final Any SEPTEMBER = Any.create(Calendar.SEPTEMBER);
  public static final Any OCTOBER = Any.create(Calendar.OCTOBER);
  public static final Any NOVEMBER = Any.create(Calendar.NOVEMBER);
  public static final Any DECEMBER = Any.create(Calendar.DECEMBER);
  public static final Any UNDECIMBER = Any.create(Calendar.UNDECIMBER);
  public static final Any AM = Any.create(Calendar.AM);
  public static final Any PM = Any.create(Calendar.PM);


  /// @function getTime
  /// Returns the current time.
  /// @synopsis Calendar getTime()
  /// @synopsis Calendar getTime(string timezone)
  /// @synopsis Calendar getTime(string timezone, string locale)
  public static final Object[] p_getTime = { null, "*timezone", null, "*locale", null };
  public static final Any getTime(Context context, String timezone, String locale)
  {
    TimeZone tz;
    Locale lc;
    if (timezone == null) {
      tz = context.getTimeZone();
    } else {
      tz = TimeZone.getTimeZone(timezone);
    }
    if (locale == null) {
      lc = context.getLocale();
    } else {
      lc = new Locale(context.getLanguage(), locale);
    }
    return new AnyCalendar(Calendar.getInstance(tz, lc));
  }



  /// @function getTimestamp
  /// Returns the current timestamp, i.e. milliseconds since 1.1.1970.
  /// @synopsis int getTimestamp()
  public static final Any getTimestamp()
  {
    return Any.create(System.currentTimeMillis());
  }


  /// @function parseDate
  /// Parses date string to Calendar object, using SimpleDateFormat.
  /// Returns null if given date or format string was invalid.
  /// Example. cal = anvil.time.parseDate("28.05.2002", "dd.MM.yyyy")
  /// @synopsis Calendar parseDate(string date, string format)
  public static final Object[] p_parseDate = { null, "date", "format" };
  public static Any parseDate(Context context, String date, String format)
  {
    try {
      DateFormatSymbols dfsymbols = new DateFormatSymbols(context.getLocale());
      SimpleDateFormat df = new SimpleDateFormat(format, dfsymbols);
      Calendar cal = Calendar.getInstance();
      cal.setTime(df.parse(date));
      return new AnyCalendar(cal);

    } catch (ParseException e) {
      throw context.BadParameter(e.getMessage());
    }
  }
 


  public static final anvil.script.compiler.NativeNamespace __module__ =
    new anvil.script.compiler.NativeNamespace(
      "time",
      TimeModule.class,
      new Class[] {
        AnyCalendar.class,
      },
      //DOC{{
    ""+
      " @module anvil.time\n" +
      " Timestamps and calendar.\n" +
      " @function getTime\n" +
      " Returns the current time.\n" +
      " @synopsis Calendar getTime()\n" +
      " @synopsis Calendar getTime(string timezone)\n" +
      " @synopsis Calendar getTime(string timezone, string locale)\n" +
      " @function getTimestamp\n" +
      " Returns the current timestamp, i.e. milliseconds since 1.1.1970.\n" +
      " @synopsis int getTimestamp()\n" +
      " @function parseDate\n" +
      " Parses date string to Calendar object, using SimpleDateFormat.\n" +
      " Returns null if given date or format string was invalid.\n" +
      " Example. cal = anvil.time.parseDate(\"28.05.2002\", \"dd.MM.yyyy\")\n" +
      " @synopsis Calendar parseDate(string date, string format)\n"
    //}}DOC 
    );
}

TOP

Related Classes of anvil.core.time.TimeModule

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.