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

📄 datemodule.java

📁 RESIN 3.2 最新源码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            int token = nextToken();            if (token == INT) {	_date.setMinute(_value);	_value = NULL_VALUE;      }      else {	_peekToken = token;	return;      }      token = nextToken();      if (token == ':') {	token = nextToken();      	if (token == INT) {	  _date.setSecond(_value);	  _value = NULL_VALUE;	}	else {	  _peekToken = token;	  return;	}	token = nextToken();	if (token == '.') { // milliseconds	  token = nextToken();	  _value = NULL_VALUE;	  if (token != INT) {	    _peekToken = token;	    return;	  }	}      }      if (token == AM) {	hour = _date.getHour();	if (hour == 12)	  _date.setHour(0);      }      else if (token == PM) {	hour = _date.getHour();	if (hour == 12)	  _date.setHour(12);	else	  _date.setHour(hour + 12);      }      else	_peekToken = token;      parseTimezone();    }    private void parseTimezone()    {      int token = nextToken();      int sign = 1;      boolean hasUTC = false;      if (token == UTC) {	token = nextToken();		hasUTC = true;      }      if (token == '-')	sign = -1;      else if (token == '+')	sign = 1;      else {	_peekToken = token;	if (hasUTC)	  _date.setGMTTime(_date.getGMTTime() + _date.getZoneOffset());		return;      }      int offset = 0;      token = nextToken();      if (token != INT) {	_peekToken = token;	if (hasUTC)	  _date.setGMTTime(_date.getGMTTime() + _date.getZoneOffset());	  	return;      }      else if (_digits == 4) {	int value = sign * _value;	_value = NULL_VALUE;	_date.setGMTTime(_date.getGMTTime() - value * 60000L + _date.getZoneOffset());	return;      }      else if (_digits == 2) {	int value = _value;	token = nextToken();	if (token != ':') {	  _value = sign * _value;	  _peekToken = token;	  if (hasUTC)	    _date.setGMTTime(_date.getGMTTime() + _date.getZoneOffset());	  return;	}	value = sign * (100 * value + _value);	_date.setGMTTime(_date.getGMTTime() - value * 60000L + _date.getZoneOffset());	return;      }      else {	_value = sign * _value;	_peekToken = token;		if (hasUTC)	  _date.setGMTTime(_date.getGMTTime() + _date.getZoneOffset());		return;      }    }    private void addTime(int value, int unit)    {      if (value == NULL_VALUE)	value = 1;      else if (value == -NULL_VALUE)	value = -1;            switch (unit) {      case UNIT_YEAR:	_date.setYear(_date.getYear() + value);	break;      case UNIT_MONTH:	_date.setMonth(_date.getMonth() + value);	break;      case UNIT_FORTNIGHT:	_date.setGMTTime(_date.getGMTTime() + 14 * DAY * value);	break;      case UNIT_WEEK:	_date.setGMTTime(_date.getGMTTime() + 7 * DAY * value);	break;      case UNIT_DAY:	_date.setGMTTime(_date.getGMTTime() + DAY * value);	break;      case UNIT_HOUR:	_date.setGMTTime(_date.getGMTTime() + HOUR * value);	break;      case UNIT_MINUTE:	_date.setGMTTime(_date.getGMTTime() + MINUTE * value);	break;      case UNIT_SECOND:	_date.setGMTTime(_date.getGMTTime() + 1000L * value);	break;      }    }    private void addWeekday(int value, int weekday)    {      if (value == NULL_VALUE)	value = 0;      else if (value == -NULL_VALUE)	value = -1;      _date.setDayOfMonth(_date.getDayOfMonth() +			  (8 + weekday - _date.getDayOfWeek()) % 7 +			  7 * value);    }    private void parseBareInt(int value, int digits)    {      if (digits == 8 && ! _hasDate) {	_hasDate = true;	_date.setYear(value / 10000);	_date.setMonth((value / 100 % 12) - 1);	_date.setDayOfMonth(value % 100);      }      else if (digits == 6 && ! _hasTime) {	_hasTime = true;	_date.setHour(value / 10000);	_date.setMinute(value / 100 % 100);	_date.setSecond(value % 100);	parseTimezone();      }      else if (digits == 4 && ! _hasTime) {	_hasTime = true;	_date.setHour(value / 100);	_date.setMinute(value % 100);	_date.setSecond(0);	parseTimezone();      }      else if (digits == 2 && ! _hasTime) {	_hasTime = true;	_date.setHour(value);	_date.setMinute(0);	_date.setSecond(0);	parseTimezone();      }      int token = nextToken();      if (token == '.') {	_value = NULL_VALUE;	token = nextToken();	if (token == INT)	  _value = NULL_VALUE;	else	  _peekToken = token;      }      else	_peekToken = token;    }    int nextToken()    {      if (_peekToken > 0) {	int token = _peekToken;	_peekToken = 0;	return token;      }            while (true) {	skipSpaces();      	int ch = read();	if (ch < 0)	  return -1;	else if (ch == '-')	  return '-';	else if (ch == '+')	  return '+';	else if (ch == ':')	  return ':';	else if (ch == '.')	  return '.';	else if (ch == '/')	  return '/';	else if (ch == '@')	  return '@';	else if ('0' <= ch && ch <= '9') {	  int value = 0;	  int digits = 0;	  for (; '0' <= ch && ch <= '9'; ch = read()) {	    digits++;	    value = 10 * value + ch - '0';	  }	  _value = value;	  _digits = digits;	  unread();	  return INT;	}	else if ('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z') {	  _sb.setLength(0);		  for (;	       'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '.';	       ch = read()) {	    _sb.append(Character.toLowerCase((char) ch));	  }	  unread();	  String s = _sb.toString();	  return parseString(s);	}	else {	  // skip	}      }    }    private int parseString(String s)    {      if (s.endsWith("."))	s = s.substring(0, s.length() - 1);            if ("now".equals(s) ||	  "today".equals(s)) {	_value = 0;	_unit = UNIT_NOW;	return PERIOD;      }      else if ("last".equals(s)) {	_value = -1;	return INT;      }      else if ("this".equals(s)) {	_value = 0;	return INT;      }      else if ("am".equals(s) || "a.m".equals(s)) {	return AM;      }      else if ("pm".equals(s) || "p.m".equals(s)) {	return PM;      }      else if ("next".equals(s)) {	_value = 1;	return INT;      }      else if ("third".equals(s)) {	_value = 3;	return INT;      }      else if ("fourth".equals(s)) {	_value = 4;	return INT;      }      else if ("fifth".equals(s)) {	_value = 5;	return INT;      }      else if ("sixth".equals(s)) {	_value = 6;	return INT;      }      else if ("seventh".equals(s)) {	_value = 7;	return INT;      }      else if ("eighth".equals(s)) {	_value = 8;	return INT;      }      else if ("ninth".equals(s)) {	_value = 9;	return INT;      }      else if ("tenth".equals(s)) {	_value = 10;	return INT;      }      else if ("eleventh".equals(s)) {	_value = 11;	return INT;      }      else if ("twelfth".equals(s)) {	_value = 12;	return INT;      }      else if ("yesterday".equals(s)) {	_value = -1;	_unit = UNIT_DAY;	return PERIOD;      }      else if ("tomorrow".equals(s)) {	_value = 1;	_unit = UNIT_DAY;	return PERIOD;      }      else if ("ago".equals(s)) {	return AGO;      }      else if ("year".equals(s) || "years".equals(s)) {	_unit = UNIT_YEAR;	return PERIOD;      }      else if ("month".equals(s) || "months".equals(s)) {	_unit = UNIT_MONTH;	return PERIOD;      }      else if ("fortnight".equals(s) || "fortnights".equals(s)) {	_unit = UNIT_FORTNIGHT;	return PERIOD;      }      else if ("week".equals(s) || "weeks".equals(s)) {	_unit = UNIT_WEEK;	return PERIOD;      }      else if ("day".equals(s) || "days".equals(s)) {	_unit = UNIT_DAY;	return PERIOD;      }      else if ("hour".equals(s) || "hours".equals(s)) {	_unit = UNIT_HOUR;	return PERIOD;      }      else if ("minute".equals(s) || "minutes".equals(s)) {	_unit = UNIT_MINUTE;	return PERIOD;      }      else if ("second".equals(s) || "seconds".equals(s)) {	_unit = UNIT_SECOND;	return PERIOD;      }      else if ("second".equals(s) || "seconds".equals(s)) {	_unit = UNIT_SECOND;	return PERIOD;      }      else if ("january".equals(s) || "jan".equals(s)) {	_value = 1;	return MONTH;      }      else if ("february".equals(s) || "feb".equals(s)) {	_value = 2;	return MONTH;      }      else if ("march".equals(s) || "mar".equals(s)) {	_value = 3;	return MONTH;      }      else if ("april".equals(s) || "apr".equals(s)) {	_value = 4;	return MONTH;      }      else if ("may".equals(s)) {	_value = 5;	return MONTH;      }      else if ("june".equals(s) || "jun".equals(s)) {	_value = 6;	return MONTH;      }      else if ("july".equals(s) || "jul".equals(s)) {	_value = 7;	return MONTH;      }      else if ("august".equals(s) || "aug".equals(s)) {	_value = 8;	return MONTH;      }      else if ("september".equals(s) || "sep".equals(s) || "sept".equals(s)) {	_value = 9;	return MONTH;      }      else if ("october".equals(s) || "oct".equals(s)) {	_value = 10;	return MONTH;      }      else if ("november".equals(s) || "nov".equals(s)) {	_value = 11;	return MONTH;      }      else if ("december".equals(s) || "dec".equals(s)) {	_value = 12;	return MONTH;      }      else if ("sunday".equals(s) || "sun".equals(s)) {	_weekday = 0;	return WEEKDAY;      }      else if ("monday".equals(s) || "mon".equals(s)) {	_weekday = 1;	return WEEKDAY;      }      else if ("tuesday".equals(s) || "tue".equals(s) || "tues".equals(s)) {	_weekday = 2;	return WEEKDAY;      }      else if ("wednesday".equals(s) || "wed".equals(s) ||	       "wednes".equals(s)) {	_weekday = 3;	return WEEKDAY;      }      else if ("thursday".equals(s) || "thu".equals(s) ||	       "thur".equals(s) || "thurs".equals(s)) {	_weekday = 4;	return WEEKDAY;      }      else if ("friday".equals(s) || "fri".equals(s)) {	_weekday = 5;	return WEEKDAY;      }      else if ("saturday".equals(s) || "sat".equals(s)) {	_weekday = 6;	return WEEKDAY;      }      else if ("z".equals(s) || "gmt".equals(s) || "utc".equals(s)) {	return UTC;      }      else	return 0;    }    private void skipSpaces()    {      while (true) {	int ch = read();	if (Character.isWhitespace((char) ch)) {	  continue;	}	else if (ch == '(') {	  for (ch = read(); ch > 0 && ch != ')'; ch = read()) {	  }	}	else {	  unread();	  return;	}      }    }    int read()    {      if (_index < _length)	return _s.charAt(_index++);      else {	_index++;	return -1;      }    }    void unread()    {      _index--;    }  }}

⌨️ 快捷键说明

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