Computerworld在对多位IT高管进行调查之后,得出了2012 最需要IT技能,不过由于调查范围不够大,可能会出现偏差,仅供参考。
1)编程及应用开发:需求从2010年的44%上升到2012年的61%。
2)项目管理:不仅仅管理人才监管项目,还需要洞察用户需求并转述给其他IT员工,包括需求日益增加的商业分析师。
3)服务台支持/技术支持:随着移动操作系统的发展,需求随之增加
4) 网络设计:这类需求部分归结于虚拟化及云计算的发展,相关人员最好具有虚拟系统及思杰系统经验的人。
5) 商务智能(Business Intelligence):这类需求大部分归因于企业日益将重心从节省成本转向技术投资。
6) 数据中心:虚拟化及云技术也排在其后
7) Web 2.0:围绕社交媒体的技术需求将会增加,Net,AJAX及PHP作关键后端技术,HTML,XML,CSS,Flash及Javascript作前端支持。
8) 安全:2010年需求为32%,现在有所下降,但由于日趋严重的安全问题,许多人又将此提到一个新的高度
9 )电信:对IP电话技术人员的需求也相当大,尤其是对Cisco IPCC电话中心系统熟悉的人。
posted @
2012-01-10 20:45 kylixlu 阅读(200) |
评论 (0) |
编辑 收藏
The Oracle TO_CHAR(datetime,
fmt)
function converts datetime values to a string in the format specified by
the fmt option.
MySQL has the DATE_FORMAT function that allows datetime values
converting to a string in the specified format.
SQLWays converts the Oracle TO_CHAR function to the MySQL DATE_FORMAT
function and converts elements of format string from Oracle to
corresponding specifier in MySQL as specified in the following table.
TABLE 56. Conversion of Oracle TO_CHAR(datetime) with format string to MySQL
Mapping of datetime format specifiers between MySQL and Oracle
|
MySQL
|
Oracle (independently from register)
|
Description
|
%a
|
DY
|
Abbreviated weekday name (Sun..Sat)
|
%b
|
MON
|
Abbreviated month name (Jan..Dec)
|
%D
|
-
|
Day of the month with English suffix (0th, 1st, 2nd, 3rd, etc.)
|
%d
%e
|
DD
|
Day of the month, numeric ((00..31) and (0..31))
|
%j
|
DDD
|
Day of year (001..366)
|
%m
%c
|
MM
|
Month, numeric ((00..12) and (0..12))
|
%M
|
MONTH
|
Month name (January..December)
|
%f
|
-
|
Microseconds (000000..999999)
|
%i
|
MI
|
Minutes, numeric (00..59)
|
%h
%I
%l
|
HH
HH12
|
Hour ((01..12) and (1..12))
|
%H
%k
|
HH24
|
Hour ((00..23) and (0..23))
|
%p
|
AM
PM
|
AM or PM
|
%r
|
-
|
Time, 12-hour (hh:mm:ss followed by AM or PM)
|
%S
%s
|
SS
|
Seconds ((00..59) and (0..59))
|
%T
|
-
|
Time, 24-hour (hh:mm:ss)
|
%u
|
WW
IW
|
Week (00..53), where Monday is the first day of week
|
%U
|
-
|
Week (00..53), where Sunday is the first day of week
|
%V
|
-
|
Week (01..53), where Sunday is the first day of week, used with %X
|
%v
|
WW
IW
|
Week (01..53), where Monday is the first day of week, used with %x
|
%W
|
DAY
|
Weekday name (Sunday..Saturday)
|
%w
|
-
|
Day of the week (0=Sunday .. 6=Saturday)
|
%X
|
-
|
Year for the week, where Sunday is the first day of the week, numeric 4
digits; used with %V
|
%x
|
-
|
Year for the week, where Monday is the first day of the week, numeric 4
digits; used with %v
|
%Y
|
YYYY
SYYYY
IYYY
|
Year, numeric, 4 digits
|
%y
|
YY
IYY
|
Year, numeric, 2 digits
|
-
|
J
|
Julian day; the number of days since January 1, 4712 BC.
|
-
|
Q
|
Quarter of year (1, 2, 3, 4; JAN-MAR = 1).
|
-
|
RR
|
Given a year with 2 digits:
· If the year is <50 and the last 2 digits of the current year are
>=50, then the first 2 digits of the returned year are 1 greater than
the first 2 digits of the current year.
· If the year is >=50 and the last 2 digits of the current year are
<50, then the first 2 digits of the returned year are 1 less than the
first 2 digits of the current year.
|
-
|
RRRR
|
Round year. Accepts either 4-digit or 2-digit input. If 2-digit,
provides the same return as RR. If you don't want this functionality,
then simply enter the 4-digit year.
|
-
|
W
|
Week of month (1-5) where week 1 starts on the first day of the month
and ends on the seventh.
|
-
|
SSSSS
|
Seconds past midnight (0 - 86399).
|
-
|
X
|
Local radix character.
|
-
|
Y,YYY
|
Year with comma in the position.
|
-
|
YEAR
SYEAR
|
Year, spelled out; "S" prefixes BC dates with "-".
|
-
|
YYY
|
3 digits of year.
|
-
|
Y
|
1 digit of year.
|
-
|
IY
|
2 digits of ISO year.
|
-
|
I
|
1 digit of ISO year.
|
-
|
AD
A.D.
|
AD indicator with or without periods.
|
-
|
BC
B.C.
|
BC indicator with or without periods.
|
-
|
CC
SCC
|
One greater than the first two digits of a four-digit year; "S" prefixes
BC dates with "-".
For example, '20' from '1900'.
|
-
|
D
|
Day of week (1 - 7).
|
-
|
A.M.
P.M.
|
Meridian indicator with periods.
|
-
|
TZH
|
Time zone hour.
|
-
|
TZM
|
Time zone minute.
|
-
|
TZR
|
Time zone region information.
|
-
|
RM
|
|
TABLE 57. Example of Conversion
posted @
2010-04-22 17:00 kylixlu 阅读(1194) |
评论 (0) |
编辑 收藏
近日在项目中写了个OPhone 调用Webservice的工具类,主要是使用了KSoap2来实现的,代码如下:
1package com.ictehi.ophone.util;
2
3import java.io.IOException;
4import java.util.Iterator;
5import java.util.Map;
6
7import org.ksoap2.SoapEnvelope;
8import org.ksoap2.SoapFault;
9import org.ksoap2.serialization.SoapObject;
10import org.ksoap2.serialization.SoapSerializationEnvelope;
11import org.ksoap2.transport.AndroidHttpTransport;
12import org.ksoap2.transport.HttpTransportSE;
13import org.xmlpull.v1.XmlPullParserException;
14
15import android.util.Log;
16
17public class WSUtils {
18
19 public WSUtils() {
20 }
21
22 /** *//**
23 * @author Eric.Lu
24 * @param endPoint
25 * @param methodName
26 * @param params
27 * @param wsdl
28 * @return SoapObject
29 */
30 public static SoapObject callWS(String nameSpace, String methodName,
31 Map params, String wsdl) {
32
33 final String SOAP_ACTION=nameSpace+methodName;
34 SoapObject request = new SoapObject(nameSpace, methodName);
35 SoapObject soapResult=null;
36
37 if(params !=null && !params.isEmpty()){
38 for(Iterator it=params.entrySet().iterator();it.hasNext();){//遍历MAP
39 Map.Entry<String, Object> e=(Map.Entry<String, Object>) it.next();
40 request.addProperty(e.getKey().toString(),e.getValue());
41 }
42 }
43
44 /** *//**
45 * 设置Soap版本
46 * 类型:VER1.0,VER1.1,VER1.2
47 */
48 // SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER10);//SOAP 1.0
49 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);// SOAP 1.1
50 // SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);//SOAP 1.2
51
52 envelope.dotNet=true;//是否是dotNet WebService
53 envelope.bodyOut = request;
54
55// HttpTransportSE ht = new HttpTransportSE(wsdl);
56 AndroidHttpTransport androidHT=new AndroidHttpTransport(wsdl);
57 try {
58// ht.call(SOAP_ACTION, envelope);
59 androidHT.call(SOAP_ACTION,envelope);
60 } catch (IOException e) {
61 Log.e("IOException:", e.getMessage());
62 } catch (XmlPullParserException e1) {
63 Log.e("XmlPullParserException", e1.getMessage());
64 }
65 try {
66 soapResult=(SoapObject)envelope.getResponse();
67 } catch (SoapFault e) {
68 Log.e("SoapFault",e.getMessage());
69 }
70 return soapResult;
71 }
72}
73
74
75本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kylixlu/archive/2010/03/12/5372846.aspx
调用这个工具类的方法如下:
1HashMap<String, Object> params = new HashMap<String, Object>();
2 params.put("theCityName", peoples[position]);
3 String wsdl = "webservice的wsdl地址";
4 String nameSpace = "wsdl中的namespace";
5 String methodName = "方法名";//
6 // SoapObject result = WSUtils.callWS(nameSpace, methodName,
7 // wsdl,peoples[position]);
8 SoapObject result = WSUtils.callWS(nameSpace, methodName, params, wsdl);
9
10
11本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kylixlu/archive/2010/03/12/5372846.aspx
posted @
2010-03-24 09:23 kylixlu 阅读(800) |
评论 (0) |
编辑 收藏
摘要: 系统架构设计师考试大纲
一、考试说明:
1.考试目标
考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发
展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;能够对项目睥系统架构进行描述、分析、设计与评估;能够按照相
关标准编写相应的设计文档;能够与系统分析师、项目管理...
阅读全文
posted @
2010-03-09 13:28 kylixlu 阅读(278) |
评论 (0) |
编辑 收藏
<?xml version="1.0" encoding="UTF-8"?>
<license>
<terms>
<issued_to>rapidhorse.com.cn</issued_to>
<license_identifier>SN732563653</license_identifier>
<edition>enterprise</edition>
<evaluation>N</evaluation>
<start_date>12/13/2007</start_date>
<expiration>5/29/2099</expiration>
<full_test_director>500</full_test_director>
<additional_defects>500</additional_defects>
<tolerance>0%</tolerance>
<requirements>Y</requirements>
<advanced_reports>Y</advanced_reports>
<business_process_testing>500</business_process_testing>
<version_control>Y</version_control>
<dashboard>Y</dashboard>
</terms>
<Signature>lA0FAVrF+UTDW2qVIDjVPCSpPKRUpKcoTO8/GI95D1RLIzQAq/8mv+HnIGQ0Grv9am8QKHfncRsARR153QxqKw==</Signature>
</license>
posted @
2010-02-24 17:24 kylixlu 阅读(265) |
评论 (1) |
编辑 收藏
permission:android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS
permission:android.permission.FACTORY_TEST
permission:android.permission.SET_ACTIVITY_WATCHER
permission:android.permission.CLEAR_APP_USER_DATA
permission:android.permission.ACCESS_DOWNLOAD_MANAGER
permission:android.permission.CALL_PRIVILEGED
permission:android.permission.FORCE_BACK
permission:android.permission.ACCESS_CHECKIN_PROPERTIES
permission:android.permission.CONTROL_LOCATION_UPDATES
permission:android.permission.WRITE_SECURE_SETTINGS
permission:android.permission.READ_FRAME_BUFFER
permission:android.permission.INTERNAL_SYSTEM_WINDOW
permission:android.permission.ADD_SYSTEM_SERVICE
permission:android.permission.INJECT_EVENTS
permission:android.permission.MASTER_CLEAR
permission:android.permission.STATUS_LED
permission:android.permission.ACCESS_DRM
permission:android.permission.STATUS_BAR
permission:android.permission.PACKAGE_USAGE_STATS
permission:android.permission.BATTERY_STATS
permission:android.permission.INSTALL_PACKAGES
permission:android.permission.MANAGE_APP_TOKENS
permission:android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED
permission:android.permission.SET_PROCESS_FOREGROUND
permission:android.permission.BIND_INPUT_METHOD
permission:com.android.providers.streaming.permission.READ_ONLY
permission:android.permission.ACCESS_SURFACE_FLINGER
permission:android.permission.CHANGE_COMPONENT_ENABLED_STATE
permission:android.permission.READ_INPUT_STATE
permission:android.permission.DELETE_PACKAGES
permission:android.permission.UPDATE_DEVICE_STATS
permission:android.permission.BRICK
permission:android.permission.ACCESS_CACHE_FILESYSTEM
permission:android.permission.WRITE_GSERVICES
permission:android.permission.REBOOT
permission:android.permission.DELETE_CACHE_FILES
permission:com.android.providers.streaming.permission.WRITE_ONLY
permission:android.permission.FOTA_UPDATE
permission:android.permission.SET_ORIENTATION
permission:android.permission.DEVICE_POWER
posted @
2010-02-08 10:00 kylixlu 阅读(738) |
评论 (0) |
编辑 收藏
1.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/spring/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/dom4j/DocumentException
解决方法:添加dom4j.jar
2.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/spring/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
解决方法: 添加jta.jar
posted @
2010-01-28 22:43 kylixlu 阅读(185) |
评论 (0) |
编辑 收藏
1. 查看你的Eclipse中使用的是什么SVN Interface
windows > preference > Team > SVN #SVN Interface
2. 如果是用的JavaHL, 找到以下目录并删除auth目录.
C:\Documents and Settings\[YourUserName]\Application Data\Subversion\
3. 如果你用的SVNKit, 找到以下目录并删除.keyring文件.
[eclipse]\configuration\org.eclipse.core.runtime
posted @
2009-12-21 17:08 kylixlu 阅读(263) |
评论 (0) |
编辑 收藏
使用svn log命令生成一个changelog.xml文件:
1.生成文件需要记录所有的变更:
svn log <path> -v --xml > changelog.xml
-v :verbose模式
--xml :输出xml文件
changelog.xml输出的xml文件名
2.生成的文件只需记录当前最新的变更:
svn log <path> -r HEAD -v --xml >changelog.xml
-r:revision
HEAD :最新的版本信息
还有两个参数与上面同解
BTW: svn log 还有好多参数,请自己使用
svn log -h 查阅
也许你执行了以上的命令后,你会发现自己的最新变更信息并不在changelog.xml中,这是为什么呢?
这是因为SVN中的“update”与"commit"是分开的.在版本做出变更后,还需执行以下的命令:
svn update <path>
当然svn update也有很多其它参数,详情请使用
svn update -h 查阅
先写到这里,后面还要介绍用ant脚本怎么来实现同样的操作.
posted @
2009-08-12 21:54 kylixlu 阅读(727) |
评论 (0) |
编辑 收藏
Eclipse+ADT是目前最推荐的一种开发Android的开发环境,不过有些Android程序是使用Android提供的一些工具(如:Android命令)和其它IDEs中建立的,那怎么样才能将这些非Eclipse中建立的Android项目导入进来呢?
1.首先要确保你的Eclipse安装了ADT(Android Development Tools)插件.(
详细资料请查阅官方文档)
2.新建一个Android项目
,此时选择"Create project form existing source",在Location中点"Browse...",先中Android项目所在文件夹。
其它的所以一切Eclipse会自动识别,之后你点"Finish",项目就成功导入到Eclipse中了。
posted @
2009-07-31 09:41 kylixlu 阅读(949) |
评论 (0) |
编辑 收藏
项目中的OTA Server中的一个功能。具体使用请看https://www.clickatell.com/developers/api_http.php
代码如下:
1 protected void SendSMS()
2 {
3
4 string api_id = "xxxxxx";//api_id请查阅clicktell网站帮助
5 string user = "xxxxxx";
6 string password = "xxxxx";
7 //string mobile = "xxxxxx";
8 string mobile = txtMobile.Text;//一个输入手机号的文本框
9
10 string appUri = getAppUri();//发送给手机的App链接,出于保密,此处假设了getAppUri()方法
11
12 StringBuilder smsParams = new StringBuilder();
13 smsParams.Append("api_id=" + api_id);
14 smsParams.Append("&user=" + user);
15 smsParams.Append("&password=" + password);
16 smsParams.Append("&to=" + mobile);
17 smsParams.Append("&text=" + appUri);
18
19
20
21 Uri smsuri = new Uri(string.Format("http://api.clickatell.com/http/sendmsg?{0}", smsParams));
22
23 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(smsuri);
24
25 request.AllowAutoRedirect = false;
26
27 request.Method = "GET";
28
29
30 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
31
32 }
33
34
这个方法不仅适用于clicktell公司的服务,其它的一些SMS服务提供商,用C#调用方法也差不多,仅供大家参考,呵呵
posted @
2009-07-16 21:52 kylixlu 阅读(217) |
评论 (0) |
编辑 收藏
protected void getAllDirs(string path)
{
DirectoryInfo dirinfo = new DirectoryInfo(@path);
DirectoryInfo[] dirs = dirinfo.GetDirectories();
for (int i = 0; i < dirs.Length; i++) {
Response.Write(dirs[i].FullName + "<br>");//页面上打印输出
getAllDirs(dirs[i].FullName);//递归
}
}
posted @
2009-07-16 20:31 kylixlu 阅读(176) |
评论 (0) |
编辑 收藏
我用了一个虚拟机做NightlyBuild脚本的测试,因为要装三个JDE的版本,发现装完JDK+ANT+三个JDE之后,硬盘没空间了,去虚拟机配置里看了一下,还没地方可以调整硬盘大小的。
不过VMWare,提供了以命令行的方式,调整硬盘的大小,在<VMWare_HOME>下有一个vmware-vdiskmanager.exe 可以增加虚拟硬盘的容量:
e.g :我要把硬盘变成5G大小,可以用以下命令
C:\VMware安装路径>vmware-vdiskmanager -x 6Gb X:\你虚拟机文件的路径\Windows" "XP" "Professional.vmdk
(
注意:我的虚拟机创建时用了默认文件名Windows XP Professional.vmdk,所以中间有空格,所以要用引号括起来)
如果命令正确,就会出现上图的操作.
D:\System\VMware\VMware Workstation>vmware-vdiskmanager -x 6Gb F:\VM_XP_EN\Windo
ws" "XP" "Professional.vmdk
Using log file C:\DOCUME~1\ERICLU~1.IBM\LOCALS~1\Temp\vmware-Eric.Lu\vdiskmanage
r.log
Grow: 100% done.
The old geometry C/H/S of the disk is: 10402/16/63
The new geometry C/H/S of the disk is: 12483/16/63
Disk expansion completed successfully.
WARNING: If the virtual disk is partitioned, you must use a third-party
utility in the virtual machine to expand the size of the
partitions. For more information, see:
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647
D:\System\VMware\VMware Workstation>
等Grow:100%后,并不等于我们的虚拟机硬盘就是5Gb了,我们要用PQ之类的软件对其进行重新分配置,调整分区大小,才会有效果,不然 硬盘的分区大小还是原来那么大。
posted @
2009-07-02 20:01 kylixlu 阅读(1593) |
评论 (0) |
编辑 收藏
Ant的概念
可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷。最Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计。
Ant 与 makefile
Makefile有一些不足之处,比如很多人都会碰到的烦人的Tab问题。最初的Ant开发者多次强调”只是我在Tab前面加了一个空格,所以我的命令就不能执行”。有一些工具在一定程度上解决了这个问题,但还是有很多其他的问题。Ant则与一般基于命令的工具有所不同,它是Java类的扩展。Ant运行需要的XML格式的文件不是Shell命令文件。它是由一个Project组成的,而一个Project又可分成可多target,target再细分又分成很多task,每一个task都是通过一个实现特定接口的java类来完成的。
Ant的优点
Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是存Java语言编写的,所示具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件时XML格式的文件,所以和容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。
Ant 开发
Ant的构建文件
当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发中每个人使用。Ant构建文件默认命名为build.xml,也可以取其他的名字。只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。一般做法是放在项目顶层目录中,这样可以保持项目的简洁和清晰。下面是一个典型的项目层次结构。
(1) src存放文件。
(2) class存放编译后的文件。
(3) lib存放第三方JAR包。
(4) dist存放打包,发布以后的代码。
Ant构建文件是XML文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可以定义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行他们所依赖的目标。每个目标中可以定义多个任务,目标中还定义了所要执行的任务序列。Ant在构建目标时必须调用所定义的任务。任务定义了Ant实际执行的命令。Ant中的任务可以为3类。
(1) 核心任务。核心任务是Ant自带的任务。
(2) 可选任务。可选任务实来自第三方的任务,因此需要一个附加的JAR文件。
(3) 用户自定义的任务。用户自定义的任务实用户自己开发的任务。
1.<project>标签
每个构建文件对应一个项目。<project>标签时构建文件的根标签。它可以有多个内在属性,就如代码中所示,其各个属性的含义分别如下。
(1) default表示默认的运行目标,这个属性是必须的。
(2) basedir表示项目的基准目录。
(3) name表示项目名。
(4) description表示项目的描述。
每个构建文件都对应于一个项目,但是大型项目经常包含大量的子项目,每一个子项目都可以有自己的构建文件。
2.<target>标签
一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。例如,有一个target用于编译程序,另一个target用于声称可执行文件。在生成可执行文件之前必须先编译该文件,因策可执行文件的target依赖于编译程序的target。Target的所有属性如下。
(1) .name表示标明,这个属性是必须的。
(2) .depends表示依赖的目标。
(3) if表示仅当属性设置时才执行。
(4) unless表示当属性没有设置时才执行。
(5) description表示项目的描述。
Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。程序中的名为run的target的depends属性compile,而名为compile的target的depends属性是prepare,所以这几个target执行的顺序是prepare->compile->run。一个target只能被执行一次,即使有多个target依赖于它。如果没有if或unless属性,target总会被执行。
3.<mkdir>标签
该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下:
<mkdir dir=”${class.root}”/>
通过以上代码就创建了一个目录,这个目录已经被前面的property标签所指定。
4<jar>标签
该标签用来生成一个JAR文件,其属性如下。
(1) destfile表示JAR文件名。
(2) basedir表示被归档的文件名。
(3) includes表示别归档的文件模式。
(4) exchudes表示被排除的文件模式。
5.<javac标签>
该标签用于编译一个或一组java文件,其属性如下。
(1).srcdir表示源程序的目录。
(2).destdir表示class文件的输出目录。
(3).include表示被编译的文件的模式。
(4).excludes表示被排除的文件的模式。
(5).classpath表示所使用的类路径。
(6).debug表示包含的调试信息。
(7).optimize表示是否使用优化。
(8).verbose 表示提供详细的输出信息。
(9).fileonerror表示当碰到错误就自动停止。
6.<java>标签
该标签用来执行编译生成的.class文件,其属性如下。
(1).classname 表示将执行的类名。
(2).jar表示包含该类的JAR文件名。
(3).classpath所表示用到的类路径。
(4).fork表示在一个新的虚拟机中运行该类。
(5).failonerror表示当出现错误时自动停止。
(6).output 表示输出文件。
(7).append表示追加或者覆盖默认文件。
7.<delete>标签
该标签用于删除一个文件或一组文件,去属性如下。
(1)/file表示要删除的文件。
(2).dir表示要删除的目录。
(3).includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。
(4).failonerror 表示指定当碰到错误是否停止,默认值是自动停止。
(5).verbose表示指定是否列出所删除的文件,默认值为不列出。
8.<copy>标签
该标签用于文件或文件集的拷贝,其属性如下。
(1).file 表示源文件。
(2).tofile 表示目标文件。
(3).todir 表示目标目录。
(4).overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。
(5).includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。
(6).failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。
(7).verbose 表示制定是否显示详细信息,默认值不显示。
Ant的数据类型
在构建文件中为了标识文件或文件组,经常需要使用数据类型。数据类型包含在org.apache.tool.ant.types包中。下面镜简单介绍构建文件中一些常用的数据类型。
1. argument 类型
由Ant构建文件调用的程序,可以通过<arg>元素向其传递命令行参数,如apply,exec和java任务均可接受嵌套<arg>元素,可以为各自的过程调用指定参数。以下是<arg>的所有属性。
(1).values 是一个命令参数。如果参数种有空格,但又想将它作为单独一个值,则使用此属性。
(2).file表示一个参数的文件名。在构建文件中,此文件名相对于当前的工作目录。
(3).line表示用空格分隔的多个参数列表。
(4).path表示路径。
2.ervironment 类型
由Ant构建文件调用的外部命令或程序,<env>元素制定了哪些环境变量要传递给正在执行的系统命令,<env>元素可以接受以下属性。
(1).file表示环境变量值得文件名。此文件名要被转换位一个绝对路径。
(2).path表示环境变量的路径。Ant会将它转换为一个本地约定。
(3).value 表示环境变量的一个直接变量。
(4).key 表示环境变量名。
注意 file path 或 value只能取一个。
3.filelist类型
Filelist 是一个支持命名的文件列表的数据类型,包含在一个filelist类型中的文件不一定是存在的文件。以下是其所有的属性。
(1).dir是用于计算绝对文件名的目录。
(2).files 是用逗号分隔的文件名列表。
(3).refid 是对某处定义的一个<filelist>的引用。
注意 dir 和 files 都是必要的,除非指定了refid(这种情况下,dir和files都不允许使用)。
4.fileset类型
Fileset 数据类型定义了一组文件,并通常表示为<fileset>元素。不过,许多ant任务构建成了隐式的fileset,这说明他们支持所有的fileset属性和嵌套元素。以下为fileset 的属性列表。
(1).dir表示fileset 的基目录。
(2).casesensitive的值如果为false,那么匹配文件名时,fileset不是区分大小写的,其默认值为true.
(3).defaultexcludes 用来确定是否使用默认的排除模式,默认为true。
(4).excludes 是用逗号分隔的需要派出的文件模式列表。
(5).excludesfile 表示每行包含一个排除模式的文件的文件名。
(6).includes 是用逗号分隔的,需要包含的文件模式列表。
(7).includesfile 表示每行包括一个包含模式的文件名。
5.patternset 类型
Fileset 是对文件的分组,而patternset是对模式的分组,他们是紧密相关的概念。
<patternset>支持4个属性:includes excludex includexfile 和 excludesfile,与fileset相同。Patternset 还允许以下嵌套元素:include,exclude,includefile 和 excludesfile.
6.filterset 类型
Filterset定义了一组过滤器,这些过滤器将在文件移动或复制时完成文件的文本替换。
主要属性如下:
(1).begintoken 表示嵌套过滤器所搜索的记号,这是标识其开始的字符串。
(2).endtoken表示嵌套过滤器所搜索的记号这是标识其结束的字符串。
(3).id是过滤器的唯一标志符。
(4).refid是对构建文件中某处定义一个过滤器的引用。
7.Path类型
Path元素用来表示一个类路径,不过它还可以用于表示其他的路径。在用作揖个属性时,路经中的各项用分号或冒号隔开。在构建的时候,此分隔符将代替当前平台中所有的路径分隔符,其拥有的属性如下。
(1).location 表示一个文件或目录。Ant在内部将此扩展为一个绝对路径。
(2).refid 是对当前构建文件中某处定义的一个path的引用。
(3).path表示一个文件或路径名列表。
8.mapper类型
Mapper类型定义了一组输入文件和一组输出文件间的关系,其属性如下。
(1).classname 表示实现mapper类的类名。当内置mapper不满足要求时,用于创建定制mapper.
(2).classpath表示查找一个定制mapper时所用的类型路径。
(3).classpathref是对某处定义的一个类路径的引用。
(4).from属性的含义取决于所用的mapper.
(5).to属性的含义取决于所用的mapper.
(6).type属性的取值为identity,flatten glob merge regexp 其中之一,它定义了要是用的内置mapper的类型。
Ant 的运行
安装好Ant并且配置好路径之后,在命令行中切换到构建文件的目录,输入Ant命令就可以运行Ant.若没有指定任何参数,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为构建文件。如果使用了 –find 选项,Ant 就会在上级目录中找构建文件,直至到达文件系统得跟目录。如果构建文件的名字不是build.xml ,则Ant运行的时候就可以使用 –buildfile file ,这里file 指定了要使用的构建文件的名称,示例如下:
Ant
如下说明了表示当前目录的构建文件为build.xml 运行 ant 执行默认的目标。
Ant –buildfile test.xml
使用当前目录下的test.xml 文件运行Ant ,执行默认的目标
posted @
2009-06-05 20:22 kylixlu 阅读(277) |
评论 (0) |
编辑 收藏
小写
α
|
β
|
γ
|
δ
|
ε
|
ζ
|
Alpha
|
Beta
|
Gamma
|
Delta
|
Epsilon
|
Zeta
|
ν
|
ξ
|
ο
|
π
|
ρ
|
σ
|
Nu
|
Xi
|
Omicron
|
Pi
|
Rho
|
Sigma
|
η
|
θ
|
ι
|
κ
|
λ
|
μ
|
Eta
|
Theta
|
Iota
|
Kappa
|
Lambada
|
Mu
|
τ
|
υ
|
φ
|
χ
|
ψ
|
ω
|
Tau
|
Upsilon
|
Phi
|
Chi
|
Psi
|
Omega
|
大写
α
|
β
|
γ
|
δ
|
ε
|
ζ
|
Alpha
|
Beta
|
Gamma
|
Delta
|
Epsilon
|
Zeta
|
ν
|
ξ
|
ο
|
π
|
ρ
|
σ
|
Nu
|
Xi
|
Omicron
|
Pi
|
Rho
|
Sigma
|
η
|
θ
|
ι
|
κ
|
λ
|
μ
|
Eta
|
Theta
|
Iota
|
Kappa
|
Lambada
|
Mu
|
τ
|
υ
|
φ
|
χ
|
ψ
|
ω
|
Tau
|
Upsilon
|
Phi
|
Chi
|
Psi
|
Omega
|
posted @
2009-05-06 17:03 kylixlu 阅读(192) |
评论 (0) |
编辑 收藏
最近经常发生Android的配置文件(像:AndroidManifest.xml)在ECLIPSE中读取出错的情况,报错情况如下:
Could not open the editor: The editor class could not be instantiated. This usually indicates a missing no-arg constructor or that
the editor's class name was mistyped in plugin.xml.
这个问题可能是由于编辑器是用JDK1.5编译而造成的,而我使用的是JDK1.6。
我把JDK设置成1.5后问题解决了(方法:Windows->Preferences->Java->Compiler->Compiler compliance level:1.5)。
如图所示:
posted @
2009-04-29 21:04 kylixlu 阅读(1280) |
评论 (0) |
编辑 收藏
http://www.blogjava.net/Files/kylixlu/NMEA0183.7z
posted @
2009-04-22 20:13 kylixlu 阅读(402) |
评论 (0) |
编辑 收藏
http://java.sun.com/blueprints/patterns/catalog.html
posted @
2009-04-15 20:33 kylixlu 阅读(124) |
评论 (0) |
编辑 收藏
1. 打开 Android的模拟器,%Android_HOME%\tools\emulator.exe
2. 打开一个COMMAND窗口,输入:adb shell 连接模拟器
3. 使用"cd"命令将当前目录调整成 ../data/com.android.providers.settings/databases (注意是'/')
4.我们使用'ls'命令可以看到有个settings.db数据文件
5.使用'sqlite3'连接这个数据文件
6.我们来查看一下数据库和库中的表单
7.用Insert语句往system表中插入proxy的设置(e.g:
Insert into system Values(_id,'http_proxy','IPAddress:port');)
8.我们可以用'Select * From system'来查看一下我们插入的配置,下图可以看到我们插入那个配置
9.删除这个配置(e.g:
Delete From system Where _id=1984)
我们可以再用'Select * from system',查看一下这个数据库,如下图可见,我们插入的配置已经删除了,不过我试了一下,好像要重启一下模拟器,才能使用新的配置,不知道是不是我机器的问题,没有仔细研究。
posted @
2009-03-12 15:30 kylixlu 阅读(1391) |
评论 (0) |
编辑 收藏
复习多线程,一个经典的实例:生产者消费者问题:
1.number表示产品编号,flag表示现在应该由谁来操作.
2.ProcuctData类中有两个同步方法setNumber()和getNumber(),分别代表生产者生产产品和消费者消费 产品。
3.两个线程类Producer和Consumer分别代表生产者与消费者
Java代码
- package cn.luxsoft.javafirststep.Thread;
-
- class ProductData {
-
-
- private int number;
-
-
- private boolean flag = true;
-
- public synchronized void setNumber(int number) {
- if (!flag) {
- try {
-
- wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- this.number = number;
-
-
- flag = false;
-
-
- notify();
- }
-
- public synchronized int getNumber() {
- if (flag) {
- try {
-
- wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
-
- flag = true;
-
-
- notify();
- return this.number;
- }
- }
-
- class Procucer extends Thread {
- private ProductData s;
-
- Procucer(ProductData s) {
- this.s = s;
- }
-
- @Override
- public void run() {
- for (int i = 0; i < 10; i++) {
- s.setNumber(i);
- System.out.println("P[" + i + "]生产.");
- }
- }
- }
-
- class Consumer extends Thread {
- private ProductData s;
-
- Consumer(ProductData s) {
- this.s = s;
- }
-
- public void run() {
- int i;
-
- do {
- i = s.getNumber();
- System.out.println("P[" + i + "]消费.**");
- } while (i != 9);
- }
- }
-
- public class ProducerConsumer {
-
-
-
-
-
- public static void main(String[] args) {
-
- ProductData s = new ProductData();
- Thread producer = new Procucer(s);
- Thread consumer = new Consumer(s);
-
- producer.start();
- consumer.start();
- }
-
- }
文章来源:
http://www.my1984.net/?action=show&id=177
posted @
2009-03-08 17:12 kylixlu 阅读(784) |
评论 (0) |
编辑 收藏
一个JAR包,可用RAR等解压文件解压缩后查看代码hfdp.jar
文章来源:
http://www.my1984.net/?action=show&id=176
posted @
2009-03-08 16:25 kylixlu 阅读(178) |
评论 (0) |
编辑 收藏
包括对bug的修复和在7.0M2和 6.6版本的加强。提供的支持包括:Eclipse 3.4.1/Ganymede、REST web服务、新的myeclipse操作板、spring工具集更新、集成Manven2、open JPA支持、高级javascript工具、专业的jsdt实现、报表工具加强、jsf和ICEfaces工具更。
The MyEclipse 7.0 production release includes enhancements and bug fixes for the MyEclipse environment over the previous 7.0 milestone and 6.6 production releases. Notably, this release includes support for the Eclipse 3.4.1/Ganymede platform, REST Web Services, a new MyEclipse dashboard, Spring tools update, integration with Maven 2 (m2e), Open JPA support, advances in JavaScript tooling, a professional implimentation of JSDT, enhancements to MyEclipse Reports tooling and updates to MyEclipse's extensive JSF and ICEfaces tooling.
windows集成版本下载地址: http://downloads.myeclipseide.com/downloads/products/eworkbench/7.0/myeclipse-7.0-win32.exe
文章来源:
http://www.my1984.net/?action=show&id=169
posted @
2009-03-01 15:17 kylixlu 阅读(113) |
评论 (0) |
编辑 收藏
/Files/kylixlu/intellij.idea.v8_keygen.rar
posted @
2009-02-08 12:22 kylixlu 阅读(120) |
评论 (0) |
编辑 收藏
1. JS代码:
JavaScript代码
- function SelectAll(chkbox)
- {
- var chkHeader=chkbox;
- state=chkHeader.checked;
- elem=chkHeader.form.elements;
- for(i=0;i<elem.length;i++)
- if(elem[i].type=="checkbox" && elem[i].id!=chkHeader.id)
- {
- if(elem[i].checked!=state)
- elem[i].click();
- }
- }
2.GridView代码:
XML/HTML代码
- <Columns>
- <asp:TemplateField>
- <HeaderTemplate>
- <input type="checkbox" id='chkHeader' onclick="SelectAll(this)" />
- </HeaderTemplate>
- <ItemTemplate>
- <asp:CheckBox ID="gvChkBox" runat="server" />
- </ItemTemplate>
- </asp:TemplateField>
3.后台获取CheckBox状态代码
C#代码
- bool chkBoxState = ((CheckBox)gr.FindControl("gvChkBox")).Checked;
说明: 1.JS实现了对CHECKBOX的全选(取消全选)功能
2.实现了GRIDVIEW的第一列显示为CHECKBOX
3.实现了对GRIDVIEW 中的gvChkBox控件的取值
文章来源:
http://www.my1984.net/?action=show&id=162
posted @
2008-12-22 14:41 kylixlu 阅读(228) |
评论 (0) |
编辑 收藏
这个做法没什么新意,就是就用一个Hidden,不过里面有些问题有搞了半天,听说细细说来。
还是先上代码(代码跟上一篇的差不多):
1.JS的代码
JavaScript代码
- function onClientClick()
- {
-
- var table=document.getElementById("<%=GridView1.ClientID %>");
- for(var i=1;i<table.rows.length;i++)
- {
- var AbsenseType=table.rows[i].cells[3].getElementsByTagName("select")[0].value;
- var AbsenseDay=table.rows[i].cells[3].getElementsByTagName("select")[1].value;
- var WotDay=table.rows[i].cells[4].getElementsByTagName("select")[0].value;
- if(AbsenseType!=12 && AbsenseDay == "请选择")
- {
- alert("第"+i+"行数据“未选缺勤时间”错误!");
- ra=1;
-
- }
- else if(AbsenseType==12 && AbsenseDay != "请选择")
- {
- alert("第"+i+"行数据“未缺勤,但选了缺勤时间”错误!");
- r=1;
- }
- else if(AbsenseDay=="" && WotDay=="")
- {
-
- }
-
- }
- document.getElementById("<%=Hidden1.ClientID %>").value=r;
- }
-
2.Hidden
XML/HTML代码
- <input id="Hidden1" type="hidden" runat="Server" value="" />
3.C#服务端
C#代码
- Response.Write("Hidden1.Value=" + Hidden1.Value + "</br>");
这个里面有一点我很搞不懂:网上很多同志都说在给Hidden赋值时要用下面这样的语句(而且都说成功了)
JavaScript代码
- document.getElementById("Hidden1").value=r;
一开始我也是这样的,但我用了ASP.net的BUTTON来触发的,死活取不到值。后来我用了HTML中的BUTTON进了测试,发现报了一个空对象的错误,我才发现,这种方法根本无法取到Hidden控件的值,为什么,因为这个Hidden 控件是runat="Server"的,即为一个服务端的控件,我把runat="Server"鼓起去掉后,即:
XML/HTML代码
- <input id="Hidden1" type="hidden" value="" />
用:
JavaScript代码
- document.getElementById("Hidden1").value=r;
就可以正常取到值。
后来想来想去,我用了
JavaScript代码
- document.getElementById("<%=Hidden1.ClientID %>").value=r;
这样对于服务端的控件就可以正确取到值拉。同理:要取一个JS的返回值也是一样的做法了:)
文章来源:
http://www.my1984.net/?action=show&id=160
posted @
2008-12-18 22:32 kylixlu 阅读(1264) |
评论 (0) |
编辑 收藏
今天实现了两个效果,一个是用JS来遍历GRIDVIEW中的DROPDOWNLIST控件,一个是从C#服务端来读取JS中的变量(当然返回值的原理也一样)。下面先介紹一下用JS来遍历GRIDVIEW中控件的效果。
不说废话,先上代码:
JavaScript代码
- function onClientClick()
- {
-
- var table=document.getElementById("<%=GridView1.ClientID %>");
- for(var i=1;i<table.rows.length;i++)
- {
- var AbsenseType=table.rows[i].cells[3].getElementsByTagName("select")[0].value;
- var AbsenseDay=table.rows[i].cells[3].getElementsByTagName("select")[1].value;
- var WotDay=table.rows[i].cells[4].getElementsByTagName("select")[0].value;
- if(AbsenseType!=12 && AbsenseDay == "请选择")
- {
- alert("第"+i+"行数据“未选缺勤时间”错误!");
- ra=1;
-
- }
- else if(AbsenseType==12 && AbsenseDay != "请选择")
- {
- alert("第"+i+"行数据“未缺勤,但选了缺勤时间”错误!");
- r=1;
- }
- }
- }
-
这里有几点要注意的:
1.
JavaScript代码
- var table=document.getElementById("<%=GridView1.ClientID %>");
getElementById里面一定是
"<%=GridView1.ClientID %>",GridView1是我的GridView的ID,如下所示:
ASP/Visual Basic代码
- <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
- BackColor="White" AllowPaging="True" PageSize="50"
- BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="3" ForeColor="Black"
- PagerSettings-Position="TopAndBottom" Width="100%" GridLines="Vertical">
2.
JavaScript代码
- var AbsenseType=table.rows[i].cells[3].getElementsByTagName("select")[0].value;
rows[i]是指GridView的行,Cells[i]是指GridView的单元格,getElementsByTagName("select")[0]表示取得
这个单元格中第一个dropdownlist控件(因为在前台用浏览器查看源代码,我们发现Asp.net的dropdownlist就是HTML里的select),所以getElementsByTagName里应该是“select”。
差不多就是这样了,OK,结束,嘿嘿。
文章来源:
http://www.my1984.net/?action=show&id=159
posted @
2008-12-18 22:16 kylixlu 阅读(1310) |
评论 (0) |
编辑 收藏
■“文本框”用於顯示單個實例資料。文本框可以放在報表上的任何位置,可以包含標籤、欄位或計算資料。您可以使用運算式來定義文字方塊中的資料。
■“表”是用於創建表格格式報表或向報表添加表結構的資料區域。
■“矩陣”是將資料排列成在特定資料點相交的列和行的資料區域。矩陣的功能與交叉表和透視表類似。與包括一組靜態列的表不同的是,矩陣的列可以是動態的。可以定義包含靜態列、靜態行、動態列和動態行的矩陣。
■“圖像”用於在報表中顯示二進位圖像資料。可以使用 .bmp、.jpeg、.gif 和 .png 格式的外部圖像、嵌入圖像或資料庫圖像。
■“子報表”用於將一個報表嵌入到另一個報表。子報表可以是獨立運行的完整報表,也可以是嵌入到主報表中才表現最佳的報表。定義子報表時,還可以定義用於篩選子報表資料的參數。
■“清單”是用於顯示單個欄位的重複行資料或包含其他報表項的資料區域。
■“矩形”用作圖形元素或作為其他報表項的容器。如果在矩形內放入報表項,則可以隨矩形一起移動這些報表項。
■“線條”是可放在頁面上任何位置的圖形元素。線條沒有與其關聯的資料。
文章来源:
http://www.my1984.net/?action=show&id=158
posted @
2008-12-03 09:51 kylixlu 阅读(456) |
评论 (0) |
编辑 收藏
1、DateTime 数字型
System.DateTime currentTime=new System.DateTime();
1.1 取当前年月日时分秒
currentTime=System.DateTime.Now;
1.2 取当前年
int 年=currentTime.Year;
1.3 取当前月
int 月=currentTime.Month;
1.4 取当前日
int 日=currentTime.Day;
1.5 取当前时
int 时=currentTime.Hour;
1.6 取当前分
int 分=currentTime.Minute;
1.7 取当前秒
int 秒=currentTime.Second;
1.8 取当前毫秒
int 毫秒=currentTime.Millisecond;
(变量可用中文)
1.9 取中文日期显示——年月日时分
string strY=currentTime.ToString("f"); //不显示秒
1.10 取中文日期显示_年月
string strYM=currentTime.ToString("y");
1.11 取中文日期显示_月日
string strMD=currentTime.ToString("m");
1.12 取当前年月日,格式为:2003-9-23
string strYMD=currentTime.ToString("d");
1.13 取当前时分,格式为:14:24
string strT=currentTime.ToString("t");
更多介绍:
在使用Asp.net的过程中,我们经常需要对时间日期进行转换,达到不同的显示效果。默认格式为:2006-6-6 14:33:34 ,如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?
这里将要用到:DateTime.ToString的方法(String, IFormatProvider)
示例:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime.Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2006
在这里列出了参数format格式详细用法
=======================
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
下表列出了可被合并以构造自定义模式的模式
========================================
这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。
格式模式 说明 :
d 月中的某一天。一位数的日期没有前导零。
dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M 月份数字。一位数的月份没有前导零。
MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。
hh 12 小时制的小时。一位数的小时数有前导零。
H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。
m 分钟。一位数的分钟数没有前导零。
mm 分钟。一位数的分钟数有一个前导零。
s 秒。一位数的秒数没有前导零。
ss 秒。一位数的秒数有一个前导零。
f 秒的小数精度为一位。其余数字被截断。
ff 秒的小数精度为两位。其余数字被截断。
fff 秒的小数精度为三位。其余数字被截断。
ffff 秒的小数精度为四位。其余数字被截断。
fffff 秒的小数精度为五位。其余数字被截断。
ffffff 秒的小数精度为六位。其余数字被截断。
fffffff 秒的小数精度为七位。其余数字被截断。
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。
z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在 TimeSeparator 中定义的默认时间分隔符。
/ 在 DateSeparator 中定义的默认日期分隔符。
% c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
\ c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\\”。
只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。自定义模式的长度至少为两个字符;例如,
DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短日期模式。
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定义模式。
DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。
比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式
如要得到2005年06月 这样格式的时间
可以这样写:
date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)
如此类推.
下面列出一些Asp.net中具体的日期格式化用法:
============================================
1.绑定时格式化日期方法:
<ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " >
<ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE >
</ASP:BOUNDCOLUMN >
2.数据控件如DataGrid/DataList等的件格式化日期方法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();
3.用String类转换日期显示格式:
String.Format( "yyyy-MM-dd ",yourDateTime);
4.用Convert方法转换日期显示格式:
Convert.ToDateTime("2005-8-23").ToString
("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库
5.直接用ToString方法转换日期显示格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")
6.只显示年月
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")
7.显示时间所有部分,包括:年月日时分秒
<asp:BoundColumn DataField="收款时间" HeaderText="收款时间"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>
[ASP.NET] 如何在GridView中使用DataFromatString
在我们从业务逻辑层获得数据实体时候,接下来的事情就是要绑定到控件中。数据实体中的一些字段可以直接绑定到界面中,但是有一些字段需要重新格 式化格式。比如货币单位字段,需要显示货币符号和每隔三位显示分隔符;再比如日期字段,数据库中存放的是日期和时间,但是在界面上需要按照XXXX年XX 月XX日的格式显示。这时候我们就用到了DataFormatString属性。
<asp:GridView ID="grvResult" runat="server" AutoGenerateColumns="False" Width="100%">
<Columns>
<asp:BoundField HeaderText="预定日期" DataField="OperationDate" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False">
</asp:BoundField>
<asp:BoundField HeaderText="订单总计" DataField="TotalRate" DataFormatString="{0:C}" HtmlEncode="False">
</asp:BoundField>
</Columns>
</asp:GridView>
例如上面的代码展示了日期和货币两种绑定方式。DataFormatString中的{0}是固定的格式,这和 String.Fromat(“{0}”, someString)中的{0}是一个用法,表示绑定上下文的参数索引编号。然后,在后面加入格式化字符串,具体的使用方法可以参考MSDN。
这里需要注意以下几点
1. 在GridView中的asp:BoundField使用DataFormatString必须设置属性HtmlEncode="False",否则不起作用。
2. 如果需要使用日期类型的格式化字符串,必须数据实体中对应的字段也应该日起类型的。
3. 格式化字符串C代表货币单位,需要绑定的数据类型应该是数字类型的。如果是字符串类型的不起作用,需要手动添加格式化字符串为DataFormatString="¥{0:C}"。
文章来源:
http://www.my1984.net/?action=show&id=150
posted @
2008-11-05 23:34 kylixlu 阅读(974) |
评论 (0) |
编辑 收藏
原文地址:http://www.cnblogs.com/catxp/archive/2006/10/20/534408.html
//大家在做报表或查询的时候都会有给用户预设一些可选的日期范围(如上图)
//如本年度销售额、本季度利润、本月新增客户
//C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了
//今天
DateTime.Now.Date.ToShortDateString();
//昨天,就是今天的日期减一
DateTime.Now.AddDays(-1).ToShortDateString();
//明天,同理,加一
DateTime.Now.AddDays(1).ToShortDateString();
//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
//如果你还不明白,再看一下中文显示星期几的方法就应该懂了
//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];
//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
//下周
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
//本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
//一般的写法
DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
//巧用C#里ToString的字符格式化更简便
DateTime.Now.ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
//上个月,减去一个月份
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下个月,加去一个月份
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
//7天后
DateTime.Now.Date.ToShortDateString();
DateTime.Now.AddDays(7).ToShortDateString();
//7天前
DateTime.Now.AddDays(-7).ToShortDateString();
DateTime.Now.Date.ToShortDateString();
//本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
//上年度,不用再解释了吧
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
//下年度
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
//本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
//同理,本季度的最后一天就是下季度的第一天减一
DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下季度,相信你们都知道了。。。。收工
DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//上季度
DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
文章来源:
http://www.my1984.net/?action=show&id=128
posted @
2008-09-16 20:59 kylixlu 阅读(173) |
评论 (0) |
编辑 收藏
摘要: C#代码
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
&n...
阅读全文
posted @
2008-07-22 23:57 kylixlu 阅读(2653) |
评论 (0) |
编辑 收藏
C#代码
- if ((GridView1.Rows[i].RowState & DataControlRowState.Edit) == DataControlRowState.Edit) {
- //GridView为编辑状态的操作
- } else {
- //GridView为正常状态的操作
- }
GridView1.Rows[i]只是表示取得当前行,若在GRIDVIEW的相关的事件中取得当前行方法可以为:e.Row.RowState
文章来源:
http://www.my1984.net/?action=show&id=112
posted @
2008-07-22 16:06 kylixlu 阅读(158) |
评论 (0) |
编辑 收藏
刚刚在看C#学习笔记,发现一个arity的单词,好像以前接触过,我还以为是书印刷错的,经过放狗查询,找到如下解释:
arity 元数 arity 是一个合成词,源于如binary (arity=2)、tertiary (arity=3),等等中的后缀。
文章来源:
http://www.my1984.net/?action=show&id=105
posted @
2008-06-28 13:59 kylixlu 阅读(219) |
评论 (0) |
编辑 收藏
CodeSmith 4.1.2 专业版 破解下载地址
文章来源:
http://www.my1984.net/?action=show&id=96
posted @
2008-06-21 15:45 kylixlu 阅读(547) |
评论 (0) |
编辑 收藏
.NET设计模式,最近没时间看了,先记录一下,以后再看。
http://terrylee.cnblogs.com/archive/2006/06/01/334911.html
文章来源:
http://www.my1984.net/?action=show&id=81
posted @
2008-05-28 22:01 kylixlu 阅读(53) |
评论 (0) |
编辑 收藏
//比较DateTime类型
DateTime dt1=DateTime.Now;
DateTime dt2=Convert.ToDateTime ("2006-11-09 18:04:11");
if(dt1.CompareTo (dt2)< 0) //CompareTo:0-两者相等
Response.Write ("<script>alert(\"dt1<dt2\");</script>");
else
Response.Write ("<script>alert(\"dt1>dt2\");</script>");
//比较string
DateTime dt3=DateTime.Now ;
string strdt3=dt3.ToString ("yyyy-MM-dd HH:mm:ss");
string strdt4="2006-11-09 18:04:11";
//字符串比较时,主要把时间都转换成yyyy-MM-dd HH:mm:ss的格式
if (strdt3.CompareTo(strdt4)<0)//CompareTo:0-两者相等
Response.Write ("<script>alert(\"strdt3<strdt4\");</script>");
else
Response.Write ("<script>alert(\"strdt3>strdt4\");</script>");
文章来源:
http://www.my1984.net/?action=show&id=79
posted @
2008-05-27 10:31 kylixlu 阅读(2900) |
评论 (0) |
编辑 收藏
- 使用VS2005 工具--->导入导出设置--->重置所有设置;此种方法网上介绍甚多,但与我的环境却没有其作用;
- 关闭VS,然后在命令行运行microsoft visual studio 8\common7\ide\devenv.exe /setup /resetuserdata /resetsettings 打开VS2005,智能感知恢复正常。
文章来源:
http://www.my1984.net/?action=show&id=76
posted @
2008-05-25 23:19 kylixlu 阅读(382) |
评论 (0) |
编辑 收藏
下载:C#高级编程(第四版)
文章来源:
http://www.my1984.net/?action=show&id=72
posted @
2008-05-23 09:11 kylixlu 阅读(149) |
评论 (0) |
编辑 收藏
让GridView控件在绑定的数据源没有数据时也显示标题
阅读全文文章来源:
http://www.my1984.net/?action=show&id=71
posted @
2008-05-22 23:20 kylixlu 阅读(413) |
评论 (0) |
编辑 收藏
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
原型参考ALIBABA http://china.alibaba.com/member/showimage
产生验证码图片的文件-----image.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
//生成随机类
Random random = new Random();
// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
---------------使用验证码图片的文件---------a.jsp------------------------------------
<%@ page contentType="text/html;charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>认证码输入页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<form method=post action="check.jsp">
<table>
<tr>
<td align=left>系统产生的认证码:</td>
<td><img border=0 src="image.jsp"></td>
</tr>
<tr>
<td align=left>输入上面的认证码:</td>
<td><input type=text name=rand maxlength=4 value=""></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="提交检测"></td>
</tr>
</form>
</body>
</html>
-----------------验证的页面----------check.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>认证码验证页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<%
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("rand");
%>
系统产生的认证码为: <%= rand %><br>
您输入的认证码为: <%= input %><br>
<br>
<%
if (rand.equals(input)) {
%>
<font color=green>输入相同,认证成功!</font>
<%
} else {
%>
<font color=red>输入不同,认证失败!</font>
<%
}
%>
</body>
</html>
posted @
2008-04-24 23:50 kylixlu 阅读(182) |
评论 (0) |
编辑 收藏