﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Java爱好者</title><link>http://www.blogjava.net/xing/</link><description>一个坚定的Java爱好者，欢迎和我讨论</description><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:21:58 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:21:58 GMT</pubDate><ttl>60</ttl><item><title>一个简单的Cache工具类，支持多线程</title><link>http://www.blogjava.net/xing/archive/2006/08/03/61451.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Thu, 03 Aug 2006 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/08/03/61451.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/61451.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/08/03/61451.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/61451.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/61451.html</trackback:ping><description><![CDATA[
		<p>
				<br />import java.util.Calendar;<br />import java.util.HashMap;<br />import java.util.Hashtable;</p>
		<p>public class CacheHelper {<br />    public final static int default_interval_second = 20;<br />    public static boolean   ISDEBUG                 = true;<br />    private static HashMap  map                     = new HashMap();<br />    private static Object   obj                     = new Object();</p>
		<p>    public static ICache getCache(String uniquekey) {<br />        synchronized (obj) {<br />            ICache ic = (ICache) map.get(uniquekey);<br />            if (ic == null) {<br />                ic = new CacheEntity(uniquekey);<br />                map.put(uniquekey, ic);<br />            }<br />            return ic;<br />        }<br />    }</p>
		<p>    public interface ICache {<br />        Object get();</p>
		<p>        Object get(long timestamp);</p>
		<p>        void set(Object obj);</p>
		<p>        void set(long timestamp, Object obj);</p>
		<p>        void clear(String regx);</p>
		<p>        void clearAll();<br />    }</p>
		<p>    private static class CacheEntity implements ICache {<br />        private Hashtable hm        = new Hashtable();<br />        private Object    uniquekey = this;<br />        private long      timestamp = Long.MIN_VALUE;</p>
		<p>        public CacheEntity(Object uniquekey) {<br />            this.uniquekey = uniquekey;<br />        }</p>
		<p>        public Object get(long timestamp) {<br />            if (timestamp &lt;= this.timestamp) {<br />                // 当前时间在设定的过期时间之前，表示还没有过期。<br />                // 如果还没过期，那么就返回。<br />                Object obj = hm.get(uniquekey);<br />                if (ISDEBUG &amp;&amp; obj != null) {<br />                    // 输出日志。<br />                    System.out.println("[" + timestamp + "][Reading cache][" + uniquekey + "]...");<br />                }<br />                return obj;<br />            }<br />            else {<br />                // 清理垃圾。<br />                hm.remove(uniquekey);<br />                return null;<br />            }<br />        }</p>
		<p>        public void set(long timestamp, Object obj) {<br />            this.timestamp = timestamp;<br />            hm.put(uniquekey, obj);<br />        }</p>
		<p>        public Object get() {<br />            Calendar cal = Calendar.getInstance();<br />            return get(cal.getTimeInMillis());<br />        }</p>
		<p>        public void set(Object obj) {<br />            Calendar cal = Calendar.getInstance();<br />            cal.add(Calendar.SECOND, default_interval_second);<br />            set(cal.getTimeInMillis(), obj);<br />        }</p>
		<p>        public void clear(String regx) {<br />            java.util.Enumeration keys = hm.keys();<br />            while (keys.hasMoreElements()) {<br />                String key = (String) keys.nextElement();<br />                if (key.matches(regx)) {<br />                    hm.remove(key);<br />                }<br />            }<br />        }</p>
		<p>        public void clearAll() {<br />            hm.clear();<br />        }<br />    }<br />}</p>
<img src ="http://www.blogjava.net/xing/aggbug/61451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-08-03 09:29 <a href="http://www.blogjava.net/xing/archive/2006/08/03/61451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个计算表达式的类，供参考</title><link>http://www.blogjava.net/xing/archive/2006/06/30/55954.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Fri, 30 Jun 2006 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/06/30/55954.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/55954.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/06/30/55954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/55954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/55954.html</trackback:ping><description><![CDATA[package cn.com.worksoft.util.expression; 
<p></p><p>import java.util.Arrays;</p><p>import cn.com.worksoft.util.log.LogFactory;<br />import cn.com.worksoft.util.log.Logger;</p><p>/**<br />* <br />* @author XING<br />* <br />* Create time 2004-12-2 16:52:48<br />* <br />* 本类的运算逻辑是 分为以下几个步骤:<br />* 1、格式化所输入的算式（去掉所有空格，＋－符号前面如果没有数字就补0，×/符号前面如果没有数字就补1，^~符号后面如果没有数字就补2，其它如果出现前后缺少的情况就报错）<br />* 2、获得的算式串，如A； 3、获取所有运算符号，寻找第一个需要运算的符号，基本规则是，找到最里层的（），然后在其内部找，^~ &gt; /* &gt; +-<br />* ，同类型的就从做至右运算； 4、获取该运算符号的两端变量，进行运算得出结果，将结果回填回去； 5、取得了新的运算串，存入A；<br />* 6、重复2直到A中没有运算符号为止； 7、得到结果。<br />* <br />* 更改所生成类型注释的模板为 窗口 &gt; 首选项 &gt; Java &gt; 代码生成 &gt; 代码和注释<br />*/<br />public final class TExpression {<br />public final static String ADD = "\\\\+";</p><p>public final static String DECREASE = "\\\\-";</p><p>public final static String[] DefaultVars = new String[]<br />{<br />"+",<br />"-",<br />"*",<br />"/",<br />"^",<br />"~", };</p><p>public final static String DIVIDE = "/";</p><p>public final static String FU = "GXFU";</p><p>public final static String LBRACKET = "\\\\(";</p><p>public final static String MULTIPLY = "\\\\*";</p><p>public final static String PERCENT = "%";</p><p>public final static String POWER = "\\\\^";</p><p>public final static String RBRACKET = "\\\\)";</p><p>public final static String SQRT = "~";</p><p>private final static Logger gLogger = LogFactory.defaultFacotry()<br />.createNewLogger();</p><p>/**<br />* 将arg0数组，完全加在arg1的后面。<br />* <br />* @param arg0<br />* @param arg1<br />* @return<br />*/<br />private static int[] addAll(int[] arg0, int[] arg1) {<br />int[] arg = new int[arg0.length + arg1.length];<br />for (int i = 0; i &lt; arg0.length + arg1.length; i++) {<br />if (i &lt; arg0.length)<br />arg[i] = arg0[i];<br />else<br />arg[i] = arg1[i - arg0.length];<br />}<br />return arg;<br />}</p><p>/**<br />* 检查括号是否正确使用。<br />* <br />* @param arg<br />* @return<br />*/<br />private static boolean CheckBracket(String arg) {<br />boolean bln = true;<br />if (SubStrCount(arg, "(") != SubStrCount(arg, ")")) {<br />bln = false;<br />}<br />if (bln) {<br />int[] lbracket = indexOf(arg, "(");<br />int[] rbracket = indexOf(arg, ")");<br />int length = lbracket.length;<br />// new ErrPrintArray(System.err).printArray(lbracket);<br />for (int i = 0; i &lt; length; i++) {<br />bln &amp;= lbracket[i] &lt; rbracket[i];<br />}<br />}</p><p>return bln;<br />}</p><p>/**<br />* 检查表达式，并返回最终合格得表达式结果，如果无法返回合格得结果，将抛出异常。<br />* <br />* @param arg<br />* @throws Exception<br />* @return<br />*/<br />private static String CheckTExpression(String arg) throws Exception {<br />// / 检查符号前后是否存在空缺。<br />arg = Trim(arg);<br />// / 将%修改成/100的运算符。<br />arg = arg.replaceAll(TExpression.PERCENT, "/100");<br />if (!CheckBracket(arg))<br />throw new Exception("括号没有匹配或者使用不当，请检查！");<br />// / 在)(之间增加*符号。<br />arg = TrimBracket(arg);<br />// / 如果-号开头，那么就在前面增加一个FU<br />if (arg.substring(0, 1).equals("-")) {<br />arg = TExpression.FU + arg.substring(1, arg.length());<br />}<br />// / 如果+号开头，那么就去掉+号<br />if (arg.substring(0, 1).equals("-")) {<br />arg = arg.substring(1, arg.length());<br />}<br />// / 如果*/号开头，那么前面加一个1<br />else if (arg.substring(0, 1).equals("*")<br />|| arg.substring(0, 1).equals("/")) {<br />arg = arg.substring(1, arg.length());<br />} else if (arg.substring(0, 1).equals("^")) {<br />throw new Exception("～符号不能用在公式开头的位置！");<br />} else if (arg.substring(0, 1).equals("^")) {<br />throw new Exception("∧符号不能用在公式开头的位置！");<br />}<br />return arg;<br />}</p><p>public static String Do(String expression, boolean showProcess)<br />throws Exception {<br />String testStr = expression;<br />/**<br />* 检查字符串。<br />*/<br />String aa = null;<br />try {<br />aa = CheckTExpression(testStr);<br />} catch (Exception e) {<br />gLogger.error(e.getMessage(), e);<br />e.printStackTrace();<br />}<br />try {<br />String[] bb = TExpression.getVars(aa, DefaultVars);<br />int i = 0;<br />// 如果操作完的结果跟操作前相同，说明不需要继续运算<br />// 增加i，避免死循环。<br />while (bb.length != 0 &amp;&amp; i &lt; 10000) {<br />aa = doOperate(aa);<br />if (showProcess) {<br />gLogger.info(aa);<br />}<br />bb = TExpression.getVars(aa, DefaultVars);<br />if (!isNaN(TrimAllBracket(aa))) {<br />aa = TrimAllBracket(aa);<br />break;<br />}<br />i++;<br />}<br />aa = TrimAllBracket(aa);<br />} catch (Exception e) {<br />gLogger.error(e.getMessage(), e);<br />e.printStackTrace();<br />}<br />return aa;<br />}</p><p>/**<br />* 对整个公式进行单步运算。<br />* <br />* @param arg<br />* @return<br />* @throws Exception<br />*/<br />private static String doOperate(String arg) throws Exception {<br />String leftRLT = "";<br />String rightRLT = "";<br />String rlt = arg;<br />int[] rkfs = TExpression.indexOf(rlt, new String[]<br />{ ")", });<br />int[] lkfs = TExpression.indexOf(rlt, new String[]<br />{ "(", });<br />// 找到第一个)符号。<br />// // 如果一个都没有找到，那么直接对整个公式进行操作。<br />if (rkfs.length == 0) {<br />leftRLT = "";<br />rightRLT = "";<br />rlt = arg;<br />}<br />// // 否则，取（）中间的内容，进行操作。<br />else {<br />int firstRkf = rkfs[0];<br />// System.out.println(arg.substring(firstRkf - 1, firstRkf + 2));<br />// 找到与第一个）符号对应的（<br />int containsLkf = lkfs[0];<br />for (int i = 1; i &lt; lkfs.length; i++) {<br />if (lkfs[i] &gt; firstRkf)<br />break;<br />else<br />containsLkf = lkfs[i];<br />}<br />// System.out.println(arg.substring(containsLkf - 1, containsLkf +<br />// 2));<br />// 取得中间的串，并取得两端的串。<br />leftRLT = rlt.substring(0, containsLkf);<br />rightRLT = rlt.substring(firstRkf + 1, rlt.length());<br />rlt = rlt.substring(containsLkf + 1, firstRkf);<br />}<br />// System.out.println(rlt);<br />// 重新检查语法<br />rlt = CheckTExpression(rlt);</p><p>String[] vars = getVars(rlt, DefaultVars);<br />String[] ops = getOperates(rlt, DefaultVars);<br />if (1 == 2) {<br />return null;<br />}<br />// 找到^~的运算<br />// // 如果存在^符号而且不存在～，或者存在^符号而且存在～符号并且^符号在～符号之前，那么就先运算^符号。<br />else if ((rlt.indexOf("^") != -1 &amp;&amp; rlt.indexOf("~") == -1)<br />|| (rlt.indexOf("^") != -1 &amp;&amp; rlt.indexOf("~") != -1 &amp;&amp; rlt<br />.indexOf("^") &lt; rlt.indexOf("~"))) {<br />int index = indexOf(ops, "^");<br />String op = TExpression.POWER;<br />rlt = doOperate1(rlt, vars[index], vars[index + 1], op);<br />rlt = "(" + rlt + ")";<br />}<br />// // 如果存在～符号而且不存在^，或者存在～符号而且存在^符号并且～符号在^符号之前，那么就先运算～符号。<br />else if ((rlt.indexOf("~") != -1 &amp;&amp; rlt.indexOf("^") == -1)<br />|| (rlt.indexOf("~") != -1 &amp;&amp; rlt.indexOf("^") != -1 &amp;&amp; rlt<br />.indexOf("~") &lt; rlt.indexOf("^"))) {<br />int index = indexOf(ops, "~");<br />if (vars[index + 1].equals("0"))<br />throw new Exception("【严重错误】:开方数不能为零");<br />String op = TExpression.SQRT;<br />rlt = doOperate1(rlt, vars[index], vars[index + 1], op);<br />rlt = "(" + rlt + ")";<br />}<br />// 如果没有找到，那么找*/的运算<br />else if ((rlt.indexOf("*") != -1 &amp;&amp; rlt.indexOf("/") == -1)<br />|| (rlt.indexOf("*") != -1 &amp;&amp; rlt.indexOf("/") != -1 &amp;&amp; rlt<br />.indexOf("*") &lt; rlt.indexOf("/"))) {<br />int index = indexOf(ops, "*");<br />String op = TExpression.MULTIPLY;<br />rlt = doOperate1(rlt, vars[index], vars[index + 1], op);<br />rlt = "(" + rlt + ")";<br />}<br />// // 如果存在～符号而且不存在^，或者存在～符号而且存在^符号并且～符号在^符号之前，那么就先运算～符号。<br />else if ((rlt.indexOf("/") != -1 &amp;&amp; rlt.indexOf("*") == -1)<br />|| (rlt.indexOf("/") != -1 &amp;&amp; rlt.indexOf("*") != -1 &amp;&amp; rlt<br />.indexOf("/") &lt; rlt.indexOf("*"))) {<br />int index = indexOf(ops, "/");<br />if (vars[index + 1].equals("0"))<br />throw new Exception("【严重错误】:除数为零");<br />String op = TExpression.DIVIDE;<br />rlt = doOperate1(rlt, vars[index], vars[index + 1], op);<br />rlt = "(" + rlt + ")";<br />}<br />// 如果没有找到，那么找+-运算<br />else if ((rlt.indexOf("+") != -1 &amp;&amp; rlt.indexOf("-") == -1)<br />|| (rlt.indexOf("+") != -1 &amp;&amp; rlt.indexOf("-") != -1 &amp;&amp; rlt<br />.indexOf("+") &lt; rlt.indexOf("-"))) {<br />int index = indexOf(ops, "+");<br />String op = TExpression.ADD;<br />rlt = doOperate1(rlt, vars[index], vars[index + 1], op);<br />rlt = "(" + rlt + ")";<br />}<br />// // 如果存在～符号而且不存在^，或者存在～符号而且存在^符号并且～符号在^符号之前，那么就先运算～符号。<br />else if ((rlt.indexOf("-") != -1 &amp;&amp; rlt.indexOf("+") == -1)<br />|| (rlt.indexOf("-") != -1 &amp;&amp; rlt.indexOf("+") != -1 &amp;&amp; rlt<br />.indexOf("-") &lt; rlt.indexOf("+"))) {<br />int index = indexOf(ops, "-");<br />String op = TExpression.DECREASE;<br />rlt = doOperate1(rlt, vars[index], vars[index + 1], op);<br />rlt = "(" + rlt + ")";<br />}<br />// // 如果什么符号都没有找到，说明该串是个单变量的串，直接去掉两端的括号，返回。<br />else {<br />rlt = TrimAllBracket(rlt);<br />}<br />// 把运算结果替换到适当的位置，然后返回。<br />return leftRLT + rlt + rightRLT;<br />}</p><p>/**<br />* 执行某个运算操作。<br />* <br />* @param vars<br />* @param ops<br />* @param op<br />*            如："\\\\*"<br />* @return<br />* @throws Exception<br />*/<br />private static String doOperate1(String rlt, String var1, String var2,<br />String op) throws Exception {<br />String tmp = var1 + op + var2;<br />if (var1.indexOf(TExpression.FU) != -1) {<br />var1 = var1.replaceAll(TExpression.FU, "-");<br />}<br />if (!isNaN(var1) &amp;&amp; !isNaN(var2)) {<br />// System.out.println(tmp);<br />rlt = rlt.replaceFirst(tmp, "" + operate(var1, var2, op));<br />}<br />rlt = "(" + rlt + ")";<br />return rlt;<br />}</p><p>/**<br />* 返回int数组中最小的一个。 假设数组中不存在相等的情况。<br />* <br />* @param arg<br />* @return<br />*/<br />private static int getMin(int[] arg, int fromIndex) throws Exception {<br />int i = arg[fromIndex];<br />for (int k = fromIndex + 1; k &lt; arg.length; k++) {<br />if (arg[k] &lt; i) {<br />i = arg[k];<br />} else if (arg[k] == i &amp;&amp; arg[k] != Integer.MAX_value)<br />throw new Exception("数组中存在相等的值，无法进行取最小值的运算。");<br />}<br />return i;<br />}</p><p>/**<br />* 返回arg1中在arg2数组中存在的所有变量的顺序组合。 如 (5*4+3) 返回 {*,+} ;<br />* <br />* @param arg1<br />* @param arg2<br />* @return<br />* @throws Exception<br />*/<br />private static String[] getOperates(String arg1, String[] arg2)<br />throws Exception {<br />int[] indexs = indexOf(arg1, arg2);<br />String[] ops = new String[indexs.length];<br />for (int i = 0; i &lt; indexs.length; i++) {<br />ops[i] = arg1.substring(indexs[i], indexs[i] + 1);<br />}<br />return ops;<br />}</p><p>/**<br />* 返回arg1中在arg2数组中存在的所有变量两端的变量的顺序组合。 如 (5*4+3) 返回 {5,4,3} ;<br />* <br />* @param arg1<br />* @param arg2<br />* @return<br />* @throws Exception<br />*/<br />private static String[] getVars(String arg1, String[] arg2)<br />throws Exception {<br />// 去掉所有括号。<br />arg1 = arg1.replaceAll(TExpression.LBRACKET, "");<br />arg1 = arg1.replaceAll(TExpression.RBRACKET, "");</p><p>int[] indexs = indexOf(arg1, arg2);<br />// 如果没有运算符，那么返回本身。<br />if (indexs.length == 0)<br />return new String[]<br />{ arg1 };<br />String[] vars = new String[indexs.length + 1];<br />for (int i = 0; i &lt; indexs.length + 1; i++) {<br />if (i == 0)<br />vars[i] = arg1.substring(0, indexs[i]);<br />else if (i == indexs.length)<br />vars[i] = arg1.substring(indexs[i - 1] + 1, arg1.length());<br />else<br />vars[i] = arg1.substring(indexs[i - 1] + 1, indexs[i]);<br />}<br />return vars;<br />}</p><p>/**<br />* 取得arg0中arg1的所有索引的值。<br />* <br />* @param arg0<br />* @param arg1<br />* @return<br />*/<br />private static int[] indexOf(String arg0, String arg1) {<br />int i = 0;<br />int j = 0;<br />int[] intArr = new int[SubStrCount(arg0, arg1)];<br />while (arg0.indexOf(arg1, i) != -1) {<br />intArr[j] = arg0.indexOf(arg1, i);<br />i = intArr[j] + 1;<br />j++;<br />}<br />return intArr;<br />}</p><p>/**<br />* 取得arg0中arg1[]任意一个的所有索引的值。<br />* <br />* @param arg0<br />* @param arg1<br />* @return<br />*/<br />private static int[] indexOf(String arg0, String[] arg1) throws Exception {<br />int j = 0;<br />// 取得arg1中所有成员最近的位置。<br />int[] targets = new int[0];<br />for (int k = 0; k &lt; arg1.length; k++) {<br />targets = addAll(targets, indexOf(arg0, arg1[k]));<br />}<br />Arrays.sort(targets);<br />int[] intArr = new int[targets.length];<br />while (j &lt; intArr.length) {<br />// 取得最近的一个成员的位置。<br />int target = getMin(targets, j);<br />intArr[j] = target;<br />j++;<br />}<br />return intArr;<br />}</p><p>/**<br />* 返回字串数组中，相关值对应的索引。<br />* <br />* @param arg1<br />* @param arg2<br />* @return<br />*/<br />private static int indexOf(String[] arg1, String arg2) {<br />for (int i = 0; i &lt; arg1.length; i++) {<br />if (arg2.equals(arg1[i]))<br />return i;<br />}<br />return -1;<br />}</p><p>/**<br />* 判断是否为数字。<br />* <br />* @param arg<br />* @return<br />*/<br />private static boolean isNaN(String arg) {<br />if (arg == null || arg.length() == 0)<br />return true;<br />try {<br />Double.parseDouble(arg);<br />} catch (NumberFormatException e) {<br />return true;<br />}<br />return false;<br />}</p><p>public static void main(String[] args) {<br />String testStr = "((-1-2%*3^(4)~2/1)(7+8)-9)()";<br />testStr = "150*(200-600/40)*12+14*3-55+76+23/3+5+5";<br />// testStr = "150*(200-600/40)*12+14*3-55+76+23/3+5+5/0";<br />// System.err.println(testStr);</p><p>// System.out.println("gdasfds");<br />// System.out.println("gdasfds".replaceAll("k", ""));<br />// System.out.println(SubStrCount(testStr, "~"));<br />// System.out.println("gdass".indexOf("k"));<br />// new<br />// ErrPrintArray(System.err).printArray(TExpression.indexOf("fagaxa",<br />// "a"));<br />/**<br />* 检验括号是否正确。<br />*/<br />// boolean kk = CheckBracket(testStr);<br />// System.err.println(kk);<br />/**<br />* 获得字符串中所有变量的顺序组合。<br />*/<br />try {<br />// new ErrPrintArray(System.err).printArray(TExpression.getVars(aa,<br />// new String[] { "+", "-", "*", "/", "^", "~", }));<br />} catch (Exception e) {<br />e.printStackTrace();<br />}<br />/**<br />* 正式测试功能。<br />*/<br />try {<br />testStr = Do(testStr, true);<br />} catch (Exception e) {<br />e.printStackTrace();<br />}<br />System.err.println(testStr);<br />}</p><p>/**<br />* 直接运算得到结果。<br />* <br />* @param arg1<br />* @param arg2<br />* @param op<br />* @return<br />* @throws Exception<br />*/<br />private static double operate(String arg1, String arg2, String op)<br />throws Exception {<br />double a1 = Double.parseDouble(arg1);<br />double a2 = Double.parseDouble(arg2);<br />if (op.equals(TExpression.ADD)) {<br />return a1 + a2;<br />} else if (op.equals(TExpression.DECREASE)) {<br />return a1 - a2;<br />} else if (op.equals(TExpression.MULTIPLY)) {<br />return a1 * a2;<br />} else if (op.equals(TExpression.DIVIDE)) {<br />return a1 / a2;<br />} else if (op.equals(TExpression.SQRT)) {<br />return Math.pow(a1, 1 / a2);<br />} else if (op.equals(TExpression.POWER)) {<br />return Math.pow(a1, a2);<br />}<br />return 0d;<br />}</p><p>/**<br />* 返回arg0中包含的arg1的个数。<br />* <br />* @param arg0<br />* @param arg1<br />* @return<br />*/<br />private static int SubStrCount(String arg0, String arg1) {<br />int i = 0;<br />arg0 = Trim(arg0);<br />i = arg0.length();<br />arg1 = arg1.replaceAll("\\\\+", "\\\\" + ADD);<br />arg1 = arg1.replaceAll("\\\\-", "\\\\" + TExpression.DECREASE);<br />arg1 = arg1.replaceAll("\\\\*", "\\\\" + TExpression.MULTIPLY);<br />arg1 = arg1.replaceAll("\\\\^", "\\\\" + TExpression.POWER);<br />arg1 = arg1.replaceAll("\\\\(", "\\\\" + TExpression.LBRACKET);<br />arg1 = arg1.replaceAll("\\\\)", "\\\\" + TExpression.RBRACKET);<br />i = i - arg0.replaceAll(arg1, "").length();<br />return i;<br />}</p><p>/**<br />* 去除所有包含的空格。<br />* <br />* @param arg<br />* @return<br />*/<br />private static String Trim(String arg) {<br />String rlt = "";<br />rlt = arg.replaceAll(" ", "");<br />return rlt;<br />}</p><p>/**<br />* 去掉字串中的所有),(符号。<br />* <br />* @param arg<br />* @return<br />*/<br />private static String TrimAllBracket(String arg) {<br />String rlt = arg;<br />rlt = rlt.replaceAll("\\\\(", "");<br />rlt = rlt.replaceAll("\\\\)", "");<br />return rlt;<br />}</p><p>/**<br />* 去掉多余的()符号； 在)(之间增加*符号；<br />* <br />* @param arg<br />* @return<br />*/<br />private static String TrimBracket(String arg) {<br />String rlt = arg;<br />rlt = rlt.replaceAll("\\\\(\\\\)", "");<br />rlt = rlt.replaceAll("\\\\)\\\\(", "\\\\)\\\\*\\\\(");<br />return rlt;<br />}<br />}</p><img src ="http://www.blogjava.net/xing/aggbug/55954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-06-30 14:30 <a href="http://www.blogjava.net/xing/archive/2006/06/30/55954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我也贡献一个去年做项目自己写的一个日期类吧，供大家参考</title><link>http://www.blogjava.net/xing/archive/2006/06/30/55951.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Fri, 30 Jun 2006 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/06/30/55951.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/55951.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/06/30/55951.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/55951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/55951.html</trackback:ping><description><![CDATA[/*<br />* Created on 2005-7-29<br />*/<br />package cn.com.worksoft.util.datetime; 
<p></p><p>import java.sql.Timestamp;<br />import java.text.SimpleDateFormat;<br />import java.util.Calendar;<br />import java.util.Date;</p><p>import cn.com.worksoft.util.basetype.CastType;</p><p>/**<br />* @author XING 日期时间工具类。<br />*/<br />public final class TDateTime implements java.io.Serializable, Comparable {<br />private final static int[] full_day_month = new int[] { 1, 3, 5, 7, 8, 10,<br />12 };</p><p>/**<br />* The year of the gregorianCutover, with 0 representing 1 BC, -1<br />* representing 2 BC, etc.<br />*/<br />private static transient int gregorianCutoverYear = 1582;</p><p>private final static int[] normal_day_month = new int[] { 4, 6, 9, 11};</p><p>public final static int QUARTER_OF_FIRST = 1;</p><p>public final static int QUARTER_OF_FOURTH = 4;</p><p>public final static int QUARTER_OF_SECOND = 2;</p><p>public final static int QUARTER_OF_THIRD = 3;</p><p>/**<br />* <br />*/<br />private static final long serialVersionUID = 1574586998788149344L;</p><p>/**<br />* 当前日期时间。<br />* <br />* @return<br />*/<br />public static TDateTime CurrentDateTime() {<br />return new TDateTime();<br />}</p><p>/**<br />* 取得某年月最大日。<br />* <br />* @param y<br />* @param m<br />* @return<br />*/<br />public static int getMaxDay(int y, int m) {<br />if (isLeapNormalMonth(y, m))<br />return 29;<br />else if (isNormalMonth(y, m))<br />return 28;<br />else if (isSmallMonth(m))<br />return 30;<br />else<br />return 31;<br />}</p><p>/**<br />* 是否为大月<br />* <br />* @param m<br />* @return<br />*/<br />public static boolean isBigMonth(int m) {<br />for (int i = 0; i &lt; full_day_month.length; i++) {<br />if (m == full_day_month[i])<br />return true;<br />}<br />return false;<br />}</p><p>/**<br />* 是否为闰平月<br />* <br />* @param year<br />* @param month<br />* @return<br />*/<br />public static boolean isLeapNormalMonth(int y, int m) {<br />return isleapyear(y) &amp;&amp; m == 2;<br />}</p><p>/**<br />* 是否闰年。<br />* <br />* @param y<br />* @return<br />*/<br />public static boolean isleapyear(int y) {<br />return y &gt;= gregorianCutoverYear ? ((y % 4 == 0) &amp;&amp; ((y % 100 != 0) || (y % 400 == 0)))<br />: // Gregorian<br />(y % 4 == 0); // Julian<br />}</p><p>/**<br />* 是否为普通平月<br />* <br />* @param year<br />* @param month<br />* @return<br />*/<br />public static boolean isNormalMonth(int y, int m) {<br />return !isleapyear(y) &amp;&amp; m == 2;<br />}</p><p>/**<br />* 是否为小月<br />* <br />* @param m<br />* @return<br />*/<br />public static boolean isSmallMonth(int m) {<br />for (int i = 0; i &lt; normal_day_month.length; i++) {<br />if (m == normal_day_month[i])<br />return true;<br />}<br />return false;<br />}</p><p>public static void main(String[] args) throws Exception {<br />// System.out.println(CastType.dtparse("2005-3-3 00:00:00"));<br />TDateTime tdt1 = new TDateTime("2005-3-32 10:00:00");<br />TDateTime tdt2 = new TDateTime("2005-4-1 11:00:00");<br />// TDateTime tdt1 = new TDateTime(2000, 2, 3, 4, 5, 6, 7);<br />System.out.println(tdt1);<br />System.out.println(tdt2);<br />System.out.println(tdt1.getDayDistance(tdt2));<br />System.out.println(tdt1);<br />System.out.println(tdt2);<br />}</p><p>private Calendar cal = null;</p><p>private Date dt = null;</p><p>private Timestamp ts = null;</p><p>public TDateTime() {<br />cal = Calendar.getInstance();<br />dt = cal.getTime();<br />ts = new Timestamp(cal.getTimeInMillis());<br />}</p><p>public TDateTime(Calendar cal) {<br />init(cal);<br />}</p><p>public TDateTime(Date dt) {<br />init(dt);<br />}</p><p>public TDateTime(int year) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />init(cal);<br />}</p><p>public TDateTime(int year, int month) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />cal.set(Calendar.MONTH, month - 1);<br />init(cal);<br />}</p><p>public TDateTime(int year, int month, int day) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />cal.set(Calendar.MONTH, month - 1);<br />cal.set(Calendar.DATE, day);<br />init(cal);<br />}</p><p>public TDateTime(int year, int month, int day, int hour) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />cal.set(Calendar.MONTH, month - 1);<br />cal.set(Calendar.DATE, day);<br />cal.set(Calendar.HOUR_OF_DAY, hour);<br />init(cal);<br />}</p><p>public TDateTime(int year, int month, int day, int hour, int minute) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />cal.set(Calendar.MONTH, month - 1);<br />cal.set(Calendar.DATE, day);<br />cal.set(Calendar.HOUR_OF_DAY, hour);<br />cal.set(Calendar.MINUTE, minute);<br />init(cal);<br />}</p><p>public TDateTime(int year, int month, int day, int hour, int minute,<br />int second) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />cal.set(Calendar.MONTH, month - 1);<br />cal.set(Calendar.DATE, day);<br />cal.set(Calendar.HOUR_OF_DAY, hour);<br />cal.set(Calendar.MINUTE, minute);<br />cal.set(Calendar.SECOND, second);<br />init(cal);<br />}</p><p>public TDateTime(int year, int month, int day, int hour, int minute,<br />int second, int millisecond) {<br />cal = Calendar.getInstance();<br />cal.set(Calendar.YEAR, year);<br />cal.set(Calendar.MONTH, month - 1);<br />cal.set(Calendar.DATE, day);<br />cal.set(Calendar.HOUR_OF_DAY, hour);<br />cal.set(Calendar.MINUTE, minute);<br />cal.set(Calendar.SECOND, second);<br />cal.set(Calendar.MILLISECOND, millisecond);<br />init(cal);<br />}</p><p>public TDateTime(String value) throws Exception {<br />this(CastType.dtparse(value));<br />}</p><p>public TDateTime(TDateTime tdt) {<br />cal = (Calendar) tdt.cal.clone();<br />init(cal);<br />}</p><p>public TDateTime(Timestamp ts) {<br />init(ts);<br />}</p><p>/**<br />* 增加日期。<br />* <br />* @param add<br />*/<br />public void addDay(int add) {<br />cal.add(Calendar.DATE, add);<br />init(cal);<br />}</p><p>/**<br />* 增加小时。<br />* <br />* @param add<br />*/<br />public void addHour(int add) {<br />cal.add(Calendar.HOUR_OF_DAY, add);<br />init(cal);<br />}</p><p>/**<br />* 增加毫秒。<br />* <br />* @param add<br />*/<br />public void addMillisecond(int add) {<br />cal.add(Calendar.MILLISECOND, add);<br />init(cal);<br />}</p><p>/**<br />* 增加分钟。<br />* <br />* @param add<br />*/<br />public void addMinute(int add) {<br />cal.add(Calendar.MINUTE, add);<br />init(cal);<br />}</p><p>/**<br />* 增加月。<br />* <br />* @param add<br />*/<br />public void addMonth(int add) {<br />cal.add(Calendar.MONTH, add);<br />init(cal);<br />}</p><p>/**<br />* 增加秒。<br />* <br />* @param add<br />*/<br />public void addSecond(int add) {<br />cal.add(Calendar.SECOND, add);<br />init(cal);<br />}</p><p>/**<br />* 增加年份。<br />* <br />* @param add<br />*/<br />public void addYear(int add) {<br />cal.add(Calendar.YEAR, add);<br />init(cal);<br />}</p><p>/*<br />* (non-Javadoc)<br />* <br />* @see java.lang.Comparable#compareTo(java.lang.Object)<br />*/<br />public int compareTo(Object o) {<br />if (o == null) {<br />return 1;<br />}<br />if (o instanceof TDateTime) {<br />return compareTo((TDateTime) o);<br />}<br />throw new UnknowRuntimeException("can't compare TDateTime with "<br />+ o.getClass());<br />}</p><p>public int compareTo(TDateTime tdt) {<br />if (tdt == null) {<br />return 1;<br />}<br />return dt.compareTo(tdt.dt);<br />}</p><p>/**<br />* 取得Calendar数据。<br />* <br />* @return<br />*/<br />public Calendar getCalendar() {<br />return cal;<br />}</p><p>/**<br />* 取得Date数据。<br />* <br />* @return<br />*/<br />public Date getDate() {<br />return dt;<br />}</p><p>/**<br />* 取得日期。<br />* <br />* @return Returns the day.<br />*/<br />public int getDay() {<br />return cal.get(Calendar.DATE);<br />}</p><p>/**<br />* 取得两个日期相隔天数。 &lt;br&gt;<br />* 如果比参数日大，返回正数，否则如果小，返回负数，否则返回零。<br />* <br />* @param tdt<br />* @return<br />*/<br />public int getDayDistance(TDateTime tdt) {<br />tdt = new TDateTime(tdt);<br />TDateTime clone = new TDateTime(this);<br />clone.setHour(0);<br />clone.setMinute(0);<br />clone.setSecond(0);<br />clone.setMillisecond(0);<br />tdt.setHour(0);<br />tdt.setMinute(0);<br />tdt.setSecond(0);<br />tdt.setMillisecond(0);</p><p>int day = 0;<br />if (clone.compareTo(tdt) &gt; 0) {<br />while (clone.compareTo(tdt) &gt; 0) {<br />day++;<br />clone.addDay(-1);<br />}<br />} else {<br />while (clone.compareTo(tdt) &lt; 0) {<br />day--;<br />clone.addDay(1);<br />}<br />}<br />return day;<br />}</p><p>/**<br />* 取得小时。<br />* <br />* @return Returns the hour.<br />*/<br />public int getHour() {<br />return cal.get(Calendar.HOUR_OF_DAY);<br />}</p><p>/**<br />* 取得本月最大天数。<br />* <br />* @return<br />*/<br />public int getMaxDay() {<br />return getMaxDay(getYear(), getMonth());<br />}</p><p>/**<br />* 取得毫秒。<br />* <br />* @return Returns the millisecond.<br />*/<br />public int getMillisecond() {<br />return cal.get(Calendar.MILLISECOND);<br />}</p><p>/**<br />* 取得分钟。<br />* <br />* @return Returns the minute.<br />*/<br />public int getMinute() {<br />return cal.get(Calendar.MINUTE);<br />}</p><p>/**<br />* 取得月份。<br />* <br />* @return Returns the month.<br />*/<br />public int getMonth() {<br />return cal.get(Calendar.MONTH) + 1;<br />}</p><p>/**<br />* 取得季节。<br />* <br />* @return<br />*/<br />public int getQuarter() {<br />int month = getMonth();<br />switch (month) {<br />case 1:<br />case 2:<br />case 3:<br />return TDateTime.QUARTER_OF_FIRST;<br />case 4:<br />case 5:<br />case 6:<br />return TDateTime.QUARTER_OF_SECOND;<br />case 7:<br />case 8:<br />case 9:<br />return TDateTime.QUARTER_OF_THIRD;<br />case 10:<br />case 11:<br />case 12:<br />return TDateTime.QUARTER_OF_FOURTH;<br />}<br />throw new UnknowRuntimeException("month is error");<br />}</p><p>/**<br />* 取得秒。<br />* <br />* @return Returns the second.<br />*/<br />public int getSecond() {<br />return cal.get(Calendar.SECOND);<br />}</p><p>/**<br />* 获得Timestamp类型数据。<br />* <br />* @return<br />*/<br />public Timestamp getTimestamp() {<br />return ts;<br />}</p><p>/**<br />* 取得年。<br />* <br />* @return Returns the year.<br />*/<br />public int getYear() {<br />return cal.get(Calendar.YEAR);<br />}</p><p>/**<br />* @param c<br />*/<br />private void init(Calendar c) {<br />cal = c;<br />dt = cal.getTime();<br />ts = new Timestamp(cal.getTimeInMillis());<br />}</p><p>/**<br />* @param d<br />*/<br />private void init(Date d) {<br />dt = d;<br />ts = new Timestamp(d.getTime());<br />cal = Calendar.getInstance();<br />cal.setTimeInMillis(ts.getTime());<br />}</p><p>/**<br />* @param t<br />*/<br />private void init(Timestamp t) {<br />ts = t;<br />cal = Calendar.getInstance();<br />cal.setTimeInMillis(ts.getTime());<br />dt = cal.getTime();<br />}</p><p>/**<br />* 设置日期。<br />* <br />* @param day<br />*            The day to set.<br />*/<br />public void setDay(int day) {<br />cal.set(Calendar.DATE, day);<br />init(cal);<br />}</p><p>/**<br />* 设置小时。<br />* <br />* @param hour<br />*            The hour to set.<br />*/<br />public void setHour(int hour) {<br />cal.set(Calendar.HOUR_OF_DAY, hour);<br />init(cal);<br />}</p><p>/**<br />* 设置毫秒。<br />* <br />* @param millisecond<br />*            The millisecond to set.<br />*/<br />public void setMillisecond(int millisecond) {<br />cal.set(Calendar.MILLISECOND, millisecond);<br />init(cal);<br />}</p><p>/**<br />* 设置分钟。<br />* <br />* @param minute<br />*            The minute to set.<br />*/<br />public void setMinute(int minute) {<br />cal.set(Calendar.MINUTE, minute);<br />init(cal);<br />}</p><p>/**<br />* 设置月份。<br />* <br />* @param month<br />*            The month to set.<br />*/<br />public void setMonth(int month) {<br />cal.set(Calendar.MONTH, month - 1);<br />init(cal);<br />}</p><p>/**<br />* 设置秒。<br />* <br />* @param second<br />*            The second to set.<br />*/<br />public void setSecond(int second) {<br />cal.set(Calendar.SECOND, second);<br />init(cal);<br />}</p><p>/**<br />* 设置年。<br />* <br />* @param year<br />*            The year to set.<br />*/<br />public void setYear(int year) {<br />cal.set(Calendar.YEAR, year);<br />init(cal);<br />}</p><p>/**<br />* 返回日期串。<br />* <br />* @return<br />*/<br />public String toDateString() {<br />return toString("yyyy-MM-dd");<br />}</p><p>/**<br />* 返回日期时间串<br />* <br />* @return<br />*/<br />public String toDateTimeString() {<br />return toString("yyyy-MM-dd HH:mm:ss.SSS");<br />}</p><p>/*<br />* (non-Javadoc)<br />* <br />* @see java.lang.Object#toString()<br />*/<br />public String toString() {<br />StringBuffer sb = new StringBuffer();<br />sb.append("TDateTime");<br />sb.append("[");<br />sb.append(getTimestamp());<br />sb.append("]");<br />sb.append("[");<br />sb.append("Year:");<br />sb.append(getYear());<br />sb.append(",");<br />sb.append("Month:");<br />sb.append(getMonth());<br />sb.append(",");<br />sb.append("Day:");<br />sb.append(getDay());<br />sb.append(",");<br />sb.append("Hour:");<br />sb.append(getHour());<br />sb.append(",");<br />sb.append("Minute:");<br />sb.append(getMinute());<br />sb.append(",");<br />sb.append("Second:");<br />sb.append(getSecond());<br />sb.append(",");<br />sb.append("MilliSecond:");<br />sb.append(getMillisecond());<br />sb.append("]");<br />return sb.toString();<br />}</p><p>/**<br />* &lt;pre&gt;<br />*                              时间格式语法： <br />*                         <br />*                              使用一个 time pattern 字符串指定时间格式。 在这种方式下，所有的 ASCII 字母被保留为模式字母，定义如下： <br />*                         <br />*                              符号     含义                    表示                示例<br />*                              ------   -------                 ------------        -------<br />*                              G        年代标志符              (Text)              AD<br />*                              y        年                      (Number)            1996<br />*                              M        月                      (Text &amp; Number)     July &amp; 07<br />*                              d        日                      (Number)            10<br />*                              h        时 在上午或下午 (1˜12)  (Number)            12<br />*                              H        时 在一天中 (0˜23)      (Number)            0<br />*                              m        分                      (Number)            30<br />*                              s        秒                      (Number)            55<br />*                              S        毫秒                    (Number)            978<br />*                              E        星期                    (Text)              Tuesday<br />*                              D        一年中的第几天          (Number)            189<br />*                              F        一月中第几个星期几      (Number)            2  (2nd Wed in July)<br />*                              w        一年中第几个星期        (Number)            27<br />*                              W        一月中第几个星期        (Number)            2<br />*                              a        上午 / 下午 标记符      (Text)              PM<br />*                              k        时 在一天中 (1˜24)      (Number)            24<br />*                              K        时 在上午或下午 (0˜11)  (Number)            0<br />*                              z        时区                    (Text)      Pacific Standard Time<br />*                              '        文本转义符              (Delimiter)<br />*                              ''       单引号                  (Literal)           '<br />* &lt;/pre&gt;<br />* <br />* @param parttern<br />* @return<br />*/<br />/**<br />* @param parttern<br />* @return<br />*/<br />public String toString(String parttern) {<br />SimpleDateFormat sdf = new SimpleDateFormat(parttern);<br />return sdf.format(dt);<br />}</p><p>/**<br />* 返回短时间类型。<br />* <br />* @return<br />*/<br />public String toShortTimeString() {<br />return toString("HH:mm");<br />}</p><p>/**<br />* 返回时间串。<br />* <br />* @return<br />*/<br />public String toTimeString() {<br />return toString("HH:mm:ss.SSS");<br />}<br />}</p><img src ="http://www.blogjava.net/xing/aggbug/55951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-06-30 14:21 <a href="http://www.blogjava.net/xing/archive/2006/06/30/55951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高尔夫局域网组网方案的讨论</title><link>http://www.blogjava.net/xing/archive/2006/06/29/55786.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Thu, 29 Jun 2006 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/06/29/55786.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/55786.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/06/29/55786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/55786.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/55786.html</trackback:ping><description><![CDATA[绝对的室外，<br />网点也是绝对的分散，相隔距离平均1000M左右。<br />真是愁死人啊。<br /><br /><table style="WIDTH: 859pt; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="1144" border="0" x:str=""><colgroup><col style="WIDTH: 67pt; mso-width-source: userset; mso-width-alt: 2848" width="89" /><col style="WIDTH: 190pt; mso-width-source: userset; mso-width-alt: 8096" width="253" /><col style="WIDTH: 225pt; mso-width-source: userset; mso-width-alt: 9600" width="300" /><col style="WIDTH: 189pt; mso-width-source: userset; mso-width-alt: 8064" width="252" /><col style="WIDTH: 188pt; mso-width-source: userset; mso-width-alt: 8000" width="250" /></colgroup><tbody><tr style="HEIGHT: 12pt" height="16"><td class="xl42" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; WIDTH: 67pt; BORDER-BOTTOM: black 0.5pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent" width="89" height="32" rowspan="2"><font face="宋体" size="2">　</font></td><td class="xl32" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; WIDTH: 190pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: silver" width="253"><strong><font face="宋体" color="#ff0000" size="2">方案一</font></strong></td><td class="xl36" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; WIDTH: 225pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: silver" width="300"><strong><font face="宋体" color="#ff0000" size="2">方案二</font></strong></td><td class="xl40" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; WIDTH: 189pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: silver" width="252"><strong><font face="宋体" color="#ff0000" size="2">方案三</font></strong></td><td class="xl33" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; WIDTH: 188pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: silver" width="250"><strong><font face="宋体" color="#ff0000" size="2">方案四</font></strong></td></tr><tr style="HEIGHT: 12pt" height="16"><td class="xl24" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12pt; BACKGROUND-COLOR: transparent" height="16"><font face="宋体" size="2">组建双绞线局域网</font></td><td class="xl37" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">组建光纤局域网</font></td><td class="xl26" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">组建无线局域网</font></td><td class="xl27" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">组建无线广域网</font></td></tr><tr style="HEIGHT: 21pt; mso-height-source: userset" height="28"><td class="xl34" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 21pt; BACKGROUND-COLOR: #ccffff" height="28"><strong><font face="宋体" size="2">方案描述</font></strong></td><td class="xl24" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">采用双绞线＋中继的方式连线</font></td><td class="xl37" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">采用光纤＋收发器的方式</font></td><td class="xl26" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">采用无线增益定向天线＋无线路由器＋AP</font></td><td class="xl27" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">使用联通CDMA包月上网卡＋VPN网络技术</font></td></tr><tr style="HEIGHT: 60pt" height="80"><td class="xl34" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 60pt; BACKGROUND-COLOR: #ccffff" height="80"><strong><font face="宋体" size="2">成本计算</font></strong></td><td class="xl25" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; WIDTH: 190pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="253"><font face="宋体" size="2">双绞线约2000M×1.5<br />中继10×100<br />共约4000块<br />其他属于给中继供电的成本，略去不计</font></td><td class="xl38" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; WIDTH: 225pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="300"><font face="宋体" size="2">光纤长2000M*20<br />20公里多模收发器4个×1000<br />其他供电设备略，共44000元<br />另需光纤焊接维护费用，（比较昂贵，自己购买需8万元一台）</font></td><td class="xl41" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; WIDTH: 189pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="252"><font face="宋体" size="2">增益天线3个×1000<br />AP3个×200<br />无线网卡10×100，视机器个数而定<br />忽略其他供电成本，共计约4600元。</font></td><td class="xl28" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; WIDTH: 188pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="250"><font face="宋体" size="2">包月卡4×300（每月，每台机器）<br />无线网卡4×100</font></td></tr><tr style="HEIGHT: 19.5pt; mso-height-source: userset" height="26"><td class="xl34" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 19.5pt; BACKGROUND-COLOR: #ccffff" height="26"><strong><font face="宋体" size="2">实现难度</font></strong></td><td class="xl24" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">简单，普通IT技术人员即可完成</font></td><td class="xl37" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">难，非专业人士无法完成</font></td><td class="xl26" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">一般，专业人士</font></td><td class="xl27" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">容易，不需要专业人士</font></td></tr><tr style="HEIGHT: 24pt" height="32"><td class="xl34" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: #ccffff" height="32"><strong><font face="宋体" size="2">维护难度</font></strong></td><td class="xl25" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; WIDTH: 190pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="253"><font face="宋体" size="2">较复杂，网络出现问题，查找不方便，<br />路线变更也不太方便</font></td><td class="xl38" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; WIDTH: 225pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="300"><font face="宋体" size="2">较复杂，网络故障较少，<br />但是路线变更比较困难。</font></td><td class="xl41" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; WIDTH: 189pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" width="252"><font face="宋体" size="2">容易，故障相互影响不大<br />路线变更也很容易</font></td><td class="xl27" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">容易，很少故障</font></td></tr><tr style="HEIGHT: 12.75pt" height="17"><td class="xl35" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: #ccffff" height="17"><strong><font face="宋体" size="2">稳定性</font></strong></td><td class="xl30" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">一般，置于室外，设备容易坏</font></td><td class="xl39" style="BORDER-RIGHT: #ece9d8; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">较稳定</font></td><td class="xl29" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">不太稳定，受天气和环境的影响较大</font></td><td class="xl31" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><font face="宋体" size="2">基本稳定</font></td></tr></tbody></table><br />参考了无数网上的信息得来的，也不知道是否正确，还没有找相关供应商询价，欢迎大家给意见。<img src ="http://www.blogjava.net/xing/aggbug/55786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-06-29 17:06 <a href="http://www.blogjava.net/xing/archive/2006/06/29/55786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发项目售前阶段需要跟客户沟通的内容</title><link>http://www.blogjava.net/xing/archive/2006/06/22/54552.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Thu, 22 Jun 2006 10:27:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/06/22/54552.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/54552.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/06/22/54552.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/54552.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/54552.html</trackback:ping><description><![CDATA[
		<p>1、×××目前拥有哪些电脑设施，如服务器、员工用机等？我了解到已经建立了互联网站，是否雇有专门的IT维护人员管理？</p>
		<p>2、是否购买或者使用了一些信息化系统软件，如专卖店销售系统，订单系统等，这些系统有哪些人员使用，他们掌握的相关计算机知识如何？</p>
		<p>3、业务构成是怎样的？是否分别由不同的负责人管理？是如何分配的？</p>
		<p>4、目前业务流程图中包含了××，××，××等一系列的业务，是否这些业务都要纳入？</p>
		<p>5、结帐时是否存在与银行转帐接口？</p>
		<p>6、部分服务人员工作环境无法直接使用电脑，是否需要其他设备参与？如PDA或者其他手持设备等？</p>
		<p>7、客户希望什么时候能组织开发、实施该系统？预计覆盖的业务属于（极大、大、一般、中小，小）的哪一种？预算大致是多少？，以及涵盖得范围。</p>
		<p>8、客户对实现技术，售后服务等有没有特殊需求？</p>
		<p>
				<br />针对以上内容的了解，<br />第一方面，可以大致了解项目的范围，投入和实现技术；<br />第二方面，可以了解用户群体的基本情况；<br />第三方面，可以估计实现难度。</p>
<img src ="http://www.blogjava.net/xing/aggbug/54552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-06-22 18:27 <a href="http://www.blogjava.net/xing/archive/2006/06/22/54552.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>夏朝</title><link>http://www.blogjava.net/xing/archive/2006/06/22/54511.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Thu, 22 Jun 2006 08:09:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/06/22/54511.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/54511.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/06/22/54511.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/54511.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/54511.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">纲要</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">夏本是一个古老的部落，相传是由包括夏在内的十多个部落联合发展而来的，与古代其他部落交错分布于中国境内。到唐尧、虞舜时期，夏族的首领禹因治水有功，取得了帝位，并传给其子启，从而建立了我国历史上第一个奴隶制王朝。夏王朝约存在于公元前二十一世纪至公元前十六世纪。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt; TEXT-INDENT: -54pt; mso-list: l0 level1 lfo1; tab-stops: list 54.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第一节，<span style="FONT: 7pt 'Times New Roman'">        </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">历史介绍</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">夏是我国历史上有记载的最早的朝代，之前的历史信息都是基于民间传说和演绎分析而来，但是从夏开始，就已经有了许多史实资料可以研究了。整个夏王朝的历史经历了夏禹、启、太康、中康、相、少康、予、槐、芒、泄、不降、帝扃（ｊｉ</span>
				<span lang="EN-US">ō</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">ｎｇ，平声炯）、廑（ｊ</span>
				<span lang="EN-US">ǐ</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">ｎ，谨）、孔甲、皋、发、履癸（就是桀）。从孔甲开始，各诸侯相继背弃天子，夏王朝也开始走向衰落。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在夏所有天子中，最知名、最伟大的，就是大禹。他拥有神话般的传奇经历，和非常人的本领。在舜统治时期，他制定了地方赋税制度，在全国范围内掀起治水运动，为国家的经济、文化、军事等的发展奠定了基础。他采取的蓄水、疏导等多种科学的治水策略，为后人提供的丰富的水利经验，至今仍然被水利相关部门采用。另外，他身先士卒，以德服天下，最终继承了帝位，统领了天下。他究竟是怎么治山治水的呢，我们来了解一下吧：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先他命令诸候将各地劳役犯调来集中修筑堤防，而他自己带着一支队伍，翻山越岭，进行地图绘制，并分别做了标记和命名。他注重勤俭节约，自己住的也是土屋。同时，他每到一处，就给当地的百姓发放粮食种子，让他们种田种地，有饭吃。同时他也规定每家每户的上交任务作为国家财政收入。并亲自分析指定上交贡赋的路线。他的治水工作不是自上而下地颁布所谓的上级指示，而是从小处着手，从基层干起。他的治水工作从都城冀州壶口工程开始，然后走向山西太原地区，然后再到太岳山地区，再之后是覃怀、衡水、漳水等。在治理过程中，他根据地方水土质量，为各类粮食经济作物定等级，并设定不同的赋税制度，随着治理工作的持续推进，水土质量上来，人民生活也得到了提高，同时他也修好了新的进贡路线，方便运送进贡物资。另外，这些进贡路线的开辟，也为各地交通运输和文化交流提供了通道。他把相对平坦的地区，开发成肥沃的平原，为老百姓提供了生存发展的有利场所。经过治理的大河大湖，在多雨的季节，水流也不再四处蔓延，相反还为农牧业的灌溉提供了丰富的水储备。在大禹继位之前，他的德行深深打动了一个人的心，那就是皋陶，皋陶同时推行德政的实施，将他的影响进一步扩大，为他今后的发展提供了很大的帮助。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大禹是一个开明的君主，他任用贤能，并坚决不把位置传给自己的儿子启，而传给了益，然而益的影响太小，在众人的压力下，把位置传给了大禹的儿子启。启登位后，第一件事情就是巩固自己的统治，他率军队在甘地同扈氏大打一战。于是天下都臣服朝拜。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt; TEXT-INDENT: -54pt; mso-list: l0 level1 lfo1; tab-stops: list 54.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第二节，<span style="FONT: 7pt 'Times New Roman'">        </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目管理相关分析</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前不久，看教育频道的电视，里面有一段针对娱乐经济的概念的阐述，是这么说的，娱乐经济有四个层面的理解，第一个层面，就是狭义的娱乐经济，如音乐、电影等传统的娱乐产业。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第二个层面，是增加了的新型娱乐项目的娱乐经济，诸如服务业、媒体等等。第三个层面，是泛娱乐经济，诸如体育、文化教育等等。第四个层面，就是一切都是娱乐经济。这不禁让我想到项目管理的概念，我想项目管理说小也小，小到一次采购，哪怕是购买一个冰激凌，说大也大，大到一个国家乃至地球的治理。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很明显，大禹是个项目管理的老手，首先他明白，这么大的一个项目，不可能是一蹴而就的，第一，项目的存活是关键，于是，他先在离都城冀州不远的壶口，搞了一个不大不小的工程，这样，为项目的运转拉到了第一笔资金，得到了政府部门的认可和支持。同时，他乘胜追击，又接二连三的完成了一个又一个的“小”工程项目，这个时候，他已经懂得以战养战的理念，这样，政府的付出，也就有了回报，各地条件得到改善的居民，根据他的要求上交更多的进贡赋税。而他也从这些进贡中抽取一部分作为今后的新的工程款。我们的很多项目管理者，都在抱怨自己总是投身于小的项目当中，可是有一点最关键没有弄明白的就是这个“以战养战”的思想。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大禹第二个做得很好的，就是并非任用最优秀的人才。“治水”项目刚起步的时候，大禹没办法要求舜帝提供更多的人才支持，所以，他需要合理使用政府拨款，而被罚的苦劳役犯人，应当说是最廉价的人了。所以一方面，他提升核心团队的技术水平和技术积累，甚至亲自参与地图考察和绘制，另一方面，却大胆使用廉价劳动力资源。在降低生产成本方面，这也是值得在当前社会上我们的新型项目管理者广泛注意的。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第三，大力发展边缘经济，大禹治水自有一套，但是他绝对不拘泥于此，首先，他也搞治山，就是开辟山路，搞活交通，以便发展经济，也方便进贡啊。，其次，他大力推动发展地方经济，鼓励自主创业，自己提升。提升对他有什么用啊，干活多、进贡多呗。同时，他还制定了一些量测标准，如长度、面积等等。他还推进各类经济产业的发展，如皮毛纺织、奢侈品工艺等等。与其说这些都跟治水有关，还不如大禹充当了一个国家领导人的角色。他的丰功伟绩，为他以后的登基奠定了基石。所以，他的继位，也是理说当然的。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt; TEXT-INDENT: -54pt; mso-list: l0 level1 lfo1; tab-stops: list 54.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第三节，<span style="FONT: 7pt 'Times New Roman'">        </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">小结</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大禹治水项目，给我们的提示很多，他不仅仅是一个优秀的项目管理者，他在这</span>
				<span lang="EN-US">13</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年的锻炼中，成功的从一个项目管理者成长为一个国家领导者。这也许是项目管理者的终极目标。我们从这个项目中，还体会到，项目管理里面也包含有经济上的管理，有时候甚至影响了项目的成败，你看看，任用廉价人员，发展边缘经济等等，哪怕是选择项目方向，都要基于项目的未来发展而立足于当前，才能不败。这也是我最佩服大禹之所在。</span>
		</p>
<img src ="http://www.blogjava.net/xing/aggbug/54511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-06-22 16:09 <a href="http://www.blogjava.net/xing/archive/2006/06/22/54511.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>133个让心情变好的领悟 </title><link>http://www.blogjava.net/xing/archive/2006/06/22/54509.html</link><dc:creator>JStar</dc:creator><author>JStar</author><pubDate>Thu, 22 Jun 2006 08:06:00 GMT</pubDate><guid>http://www.blogjava.net/xing/archive/2006/06/22/54509.html</guid><wfw:comment>http://www.blogjava.net/xing/comments/54509.html</wfw:comment><comments>http://www.blogjava.net/xing/archive/2006/06/22/54509.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xing/comments/commentRss/54509.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xing/services/trackbacks/54509.html</trackback:ping><description><![CDATA[
		<p>1、人之所以痛苦，在于追求错误的东西。 <br />2、与其说是别人让你痛苦，不如说自己的修养不够。 <br />3、如果你不给自己烦恼，别人也永远不可能给你烦恼。因为你自己的内心，你放不下。 <br />4、好好的管教你自己，不要管别人。 <br />5、不宽恕众生，不原谅众生，是苦了你自己。 <br />6、别说别人可怜，自己更可怜，自己修行又如何？自己又懂得人生多少？ <br />7、福报不够的人，就会常常听到是非；福报够的人，从来就没听到过是非。 <br />8、你永远要感谢给你逆境的众生。 <br />9、你永远要宽恕众生，不论他有多坏，甚至他伤害过你，你一定要放下，才能得到真正的快乐。 <br />10、这个世界本来就是痛苦的，没有例外的。 <br />11、当你快乐时，你要想，这快乐不是永恒的。当你痛苦时你要想这痛苦也不是永恒的。 <br />12、认识自己，降伏自己，改变自己，才能改变别人。 <br />13、不要浪费你的生命，在你一定会后悔的地方上。 <br />14、你什么时候放下，什么时候就没有烦恼。 <br />15、每一种创伤，都是一种成熟。 <br />16、当你知道迷惑时，并不可怜， 当你不知道迷惑时，才是最可怜的。 <br />17、狂妄的人有救，自卑的人没有救。 <br />18、你不要一直不满人家，你应该一直检讨自己才对。不满人家，是苦了你自己。 <br />19、你要包容那些意见跟你不同的人，这样子日子比较好过。你要是一直想改变他，那样子你会很痛苦。要学学怎样忍受他才是。你要学学怎样包容他才是。 <br />20、承认自己的伟大，就是认同自己的愚疑。 <br />21、一个人如果不能从内心去原谅别人，那他就永远不会心安理得。 <br />22、心中装满着自己的看法与想法的人，永远听不见别人的心声。 <br />23、毁灭人只要一句话，培植一个人却要千句话，请你多口下留情。 <br />24、当你劝告别人时，若不顾及别人的自尊心，那么再好的言语都没有用的。 <br />25、不要在你的智慧中夹杂着傲慢。不要使你的谦虚心缺乏智慧。 <br />26、根本不必回头去看咒骂你的人是谁？如果有一条疯狗咬你一口，难道你也要趴下去反咬他一口吗？ <br />27、忌妒别人，不会给自己增加任何的好处。忌妒别人，也不可能减少别人的成就。 <br />28、永远不要浪费你的一分一秒，去想任何你不喜欢的人。 <br />29、多少人要离开这个世间时，都会说出同一句话，这世界真是无奈与凄凉啊！ <br />30、恋爱不是慈善事业，不能随便施舍的。感情是没有公式，没有原则，没有道理可循的。可是人们至死都还在执著与追求。 <br />31、请你用慈悲心和温和的态度，把你的不满与委屈说出来，别人就容易接受。 <br />32、创造机会的人是勇者。等待机会的人是愚者。 <br />33、能说不能做，不是真智慧。 <br />34、多用心去倾听别人怎么说，不要急着表达你自己的看法。 <br />35、同样的瓶子，你为什么要装毒药呢？同样的心理，你为什么要充满着烦恼呢？ <br />36、得不到的东西，我们会一直以为他是美好的，那是因为你对他了解太少，没有时间与他相处在一起。当有一天，你深入了解后，你会发现原不是你想像中的那么美好。 <br />37、这个世间只有圆滑，没有的。 <br />38、活着一天，就是有福气，就该珍惜。当我哭泣我没有鞋子穿的时候，我发现有人却没有脚。 <br />39、多一分心力去注意别人，就少一分心力反省自己，你懂吗？ 40、欲知世上刀兵劫，但听屠门夜半声。不要光埋怨自己多病，灾祸横生，多看看横死在你刀下的众生又有多少？ <br />41、憎恨别人对自己是一种很大的损失。 <br />42、每一个人都拥有生命，但并非每个人都懂得生命，乃至于珍惜生命。不了解生命的人，生命对他来说，是一种惩罚。 <br />43、自以为拥有财富的人，其实是被财富所拥有。 <br />44、情执是苦恼的原因，放下情执，你才能得到自在。 <br />45、随缘不是得过且过，因循苟且，而是尽人事听天命。 <br />46、不要太肯定自己的看法，这样子比较少后悔。 <br />47、当你对自己诚实的时候，世界上没有人能够欺骗得了你。 <br />48、用伤害别人的手段来掩饰自己缺点的人，是可耻的。 <br />49、内心充满忌妒，心中不坦白，言语不正的人，不能算是一位五官端正的人。 50、多讲点笑话，以幽默的态度处事，这样子日子会好过一点。 <br />51、活在别人的掌声中，是禁不起考验的人。 <br />52、不要刻意去猜测他人的想法，如果你没有智慧与经验的正确判断，通常都会有错误的。 <br />53、要了解一个人，只需要看他的出发点与目的地是否相同，就可以知道他是否真心的。 <br />54、人生的真理，只是藏在平淡无味之中。 <br />55、不洗澡的人，硬擦香水是不会香的。名声与尊贵，是来自于真才实学的。有德自然香。 <br />56、与其你去排斥它已成的事实，你不如去接受它。 <br />57、逆境是成长必经的过程，能勇于接受逆境的人，生命就会日渐的茁壮。 <br />58、你要感谢告诉你缺点的人。 <br />59、能为别人设想的人，永远不寂寞。 <br />60、如果你能像看别人缺点一样，如此准确般的发现自己的缺点，那么你的生命将会不平凡。 <br />61、原谅别人，就是给自己心中留下空间，以便回旋。 <br />62、时间总会过去的，让时间流走你的烦恼吧！ <br />63、你硬要把单纯的事情看得很严重，那样子你会很痛苦。 <br />64、永远扭曲别人善意的人，无药可救。 <br />65、人不是坏的，只是习气罢了，每个人都有习气，只是深浅不同罢了。只要他有向善的心，能原谅的就原谅他，不要把他看做是坏人。 <br />66、说一句谎话，要编造十句谎话来弥补，何苦呢？ <br />67、其实爱美的人，只是与自己谈恋爱罢了。 <br />68、世界上没有一个永远不被毁谤的人，也没有一个永远被赞叹的人。当你话多的时候，别人要批评你，当你话少的时候，别人要批评你，当你沈默的时候，别人还是要批评你。在这个世界上，没有一个人不被批评的。 <br />69、夸奖我们，赞叹我们的，这都不是名师。会讲我们，指示我们的，这才是良师，有了他们我们才会进步。 <br />70、你目前所拥有的都将随着你的死亡而成为他人的，那为何不现在就乐施给真正需要的人呢？ <br />71、白白的过一天，无所事事，就像犯了窃盗罪一样。 <br />72、沈默是毁谤最好的答覆。 <br />73、对人恭敬，就是在庄严你自己。 <br />74、拥有一颗无私的爱心，便拥有了一切。 <br />75、仇恨永远不能化解仇恨，只有宽容才能化解仇恨，这是永恒的至理。 <br />76、你接受比抱怨还要好，对于不可改变的事实，你除了接受以外，没有更好的办法了。 <br />77、不要因为众生的愚疑，而带来了自己的烦恼。不要因为众生的无知，而痛苦了你自己。 <br />78、别人讲我们不好，不用生气、难过。说我们好也不用高兴，这不好中有好，好中有坏，就看你会不会用？ <br />79、当你的错误显露时，可不要发脾气，别以为任性或吵闹，可以隐藏或克服你的缺点。 <br />80、不要常常觉得自己很不幸，世界上比我们痛苦的人还要多。 <br />81、愚痴的人，一直想要别人了解他。有智慧的人，却努力的了解自己。 <br />82、来是偶然的，走是必然的。所以你必须，随缘不变，不变随缘。 83、只要面对现实，你才能超越现实。 <br />84、良心是每一个人最公正的审判官，你骗得了别人，却永远骗不了你自己的良心。 <br />85、不懂得自爱的人，是没有能力去爱别人的。 <br />86、做事就是在学做人而已。 <br />87、有时候我们要冷静问问自已，我们在追求什么？我们活着为了什么？ <br />88、不要因为小小的争执，远离了你至亲的好友，也不要因为小小的怨恨，忘记了别人的大恩。 <br />89、勇于接受别人的批评，正好可以调整自己的缺点。 <br />90、感谢上天我所拥有的，感谢上天我所没有的。 <br />91、说话不要有攻击性，不要有杀伤力，不夸已能，不扬人恶，自然能化敌为友。 <br />92、一个常常看别人缺点的人，自己本身就不够好，因为他没有时间检讨他自己。 <br />93、是非天天有，不听自然无，是非天天有，不听还是有，是非天天有，看你怎么办？ <br />94、如果你真的爱他，那么你必须容忍他部份的缺点。 <br />95、要克服对死亡的恐惧，你必须要接受世上所有的人，都会死去的观念。 96、虽然你讨厌一个人，但却又能发觉他的优点好处，像这样子有修养的人，天下真是太少了。 <br />97、诚实的面对你内心的矛盾和污点，不要欺骗你自己。 <br />98、因果不曾亏欠过我们什么，所以请不要抱怨。 <br />99、我们确实有如是的优点，但也要隐藏几分，这个叫做涵养。 <br />100、大多数的人一辈子只做了三件事；自欺、欺人、被人欺。 <br />101、太过于欣赏自己的人，不会去欣赏别人的优点。 <br />102、心是最大的骗子，别人能骗你一时，而它却会骗你一辈子。 <br />103、当你手中抓住一件东西不放时，你只能拥有这件东西，如果你肯放手，你就有机会选择别的。人的心若死执自己的观念，不肯放下，那么他的智慧也只能达到某种程度而已。 <br />104、人家怕你，并不是一种福，人家欺你，并不是一种辱。 <br />105、不是某人使我烦恼，而是我拿某人的言行来烦恼自己。 <br />106、不要刻意去曲解别人的善意，你应当往好的地方想。 <br />107、世上的事，不如己意者，那是当然的。 <br />108、我的财富并不是因为我拥有很多，而是我要求的很少。 <br />109、吃了就一定要拉，人一定要学会随缘放下，否则就会?便秘。 <br />110、常以为别人在注意你，或希望别人注意你的人，会生活的比较烦恼。 <br />111、我能为你煮东西，但我不能为你吃东西。各人吃饭是各人饱，各人生死是个人了。 <br />112、看轻别人很容易，要摆平自己却很困难。 <br />113、你只管活你自己的，不必去介意别人的扭曲与是非。 <br />114、如果你准备结婚的话，告诉你一句非常重要的哲学名言，你一定要忍耐包容对方的缺点，世界上没有绝对幸福的婚姻，幸福只是来自于无限的容忍与互相尊重。 <br />115、如果你能够平平安安的渡过一天，那就是一种福气了。多少人在今天已经见不到明天的太阳，多少人在今天已经成了残废，多少人在今天已经失去了自由，多少人在今天已经家破人亡。 <br />116、是非和得失，要到最后的结果，才能评定。 <br />117、你不必和因果争吵，因果从来就不会误人。你也不必和命运争吵，命运它是最公平的审判官。 <br />118、你有你的生命观，我有我的生命观，我不干涉你。只要我能，我就感化你。如果不能，那我就认命。 <br />119、你希望掌握永恒，那你必须控制现在。 <br />120、恶口永远不要出自于我们的口中，不管他有多坏，有多恶。你愈骂他，你的心就被污染了，你要想，他就是你的善知识。 <br />121、当你明天开始生活的时候，有人跟你争执，你就让他赢，这个赢跟输，都只是文字的观念罢了。当你让对方赢，你并没有损失什么。所谓的赢，他有赢到什么？得到什么？所谓的输，你又输到什么？失去什么？ <br />122、我们大部份的生命都浪费在文字语言的捉摸上。 <br />123、你不要常常觉得自己很委曲，你应该要想，他对我这样已经很好了，这就是修行的功夫。 <br />124、别人可以违背因果，别人可以害我们，打我们，毁谤我们。可是我们不能因此而憎恨别人，为什么？我们一定要保有一颗完整的 本性和一颗清净的心。 <br />125、与任何人接触时，要常常问自己，我有什么对他有用？使他得益。如果我不能以个人的道德、学问和修持的力量，来使人受益，就等于欠了一份债。 <br />126、如果一个人没有苦难的感受，就不容易对他人给予同情。你要学救苦救难的精神，就得先受苦受难。 <br />127、一般人在遇到对方的权势大，财富大，气力大，在无可奈何的情形之下而忍，这算什么忍耐呢？真正的忍是，就算他欺负了你，对不住你，但他什么都不及你，你有足够的力量对付他，而你却能容忍他，认为他的本性和我一样，只是一时糊涂，或在恶劣的环境中受到熏染罢了，你不必与他计较，能在这样的情况及心境之下容忍那才是真正的忍耐。 <br />128、如果我们放眼从累生历劫去看，那么一切的众生，谁不曾做过我的父母、兄弟姊妹、亲戚眷属？谁不曾做过我的仇敌冤家？如果说有恩，个个与我有恩；如果说有冤，个个与我有冤。这样子我们还有什么恩怨亲疏之别呢？再就智慧愚笨来说，人人有聪明的时候，也有愚痴的时候，聪明的人可能变愚痴，愚痴的人也可能变聪明。最坏的人，也曾做过许多好事，而且不会永远坏；好人也曾做过许多坏事，将来也不一定会好。如此我们反覆思索，所谓的冤亲、贤愚，这许多差别的概念，自然就会渐渐淡了。这绝对不是混沌，也不是不知好坏，而是要将我们无始以来的偏私差别之见，以一视同仁的平等观念罢了！ <br />129、世界原本就不是属于你，因此你用不着抛弃，要抛弃的是一切的执著。万物皆为我所用，但非我所属。 <br />130、宁可自己去原谅别人，莫让别人来原谅你。 <br />131、当你用烦恼心来面对事物时，你会觉得一切都是业障，世界也会变得丑陋可恨。 <br />132、欲为诸佛龙象，先做众生马牛。 <br />133、虽然我们不能改变周遭的世界，我们就只好改变自己，用爱心和智慧来面对这一切 </p>
<img src ="http://www.blogjava.net/xing/aggbug/54509.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xing/" target="_blank">JStar</a> 2006-06-22 16:06 <a href="http://www.blogjava.net/xing/archive/2006/06/22/54509.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>