梓聪's profile传说中的16号PhotosBlogListsMore ![]() | Help |
|
|
July 23 Google日历客户端
Google日历客户端
利用Google Calendar .NET API 写的客户端 (跟网上那个用IE内核做的不一样) 有时间会慢慢添加功能,不满意的话,大家也可以自己写 这样做的一个好处是windows的提醒比较方便(windows提醒功能有时间再完善) ----稍微修改了一下 允许自定义多语言 可以最小化到托盘 动作环境:.NET Framework 2.0 下载地址:Google日历客户端 May 08 SQL Server的DATEADD的备忘 关于取前一个月的日期的问题,如果用下面的方法, 结果=DATEADD(mm,-1,GETDATE()),两条结论: 1.结果为月减一,日不变 2.结果如果不是正确的日期,则月减一,日为前月最后一天 例子: select DATEADD(mm,-1,'2008-11-30') -> 2008-10-30 (结论一) select DATEADD(mm,-1,'2008-12-31') -> 2008-11-30 (结论二,因为11月没有31号) 所以,想用这种方法去获得2008-10-31是不可能的 Oracle就不是这样的。。。 December 13 Visual Studio 2005的ReportViewer的一个bug 发现一个问题:在DisplayMode.PrintLayout显示模式下,toolbar里面的PageNavigator的最大页数, 99%的情况下,总是比报表里面显示的最大页数小1 !!! 跟这里的哥们儿碰到的问题一模一样:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=297814&SiteID=1 解决方法是: 在Form_Load里面,进行数据填充,然后调用Me.ReportViewer1.RefreshReport() ----这个刷新完,会产生RenderingComplete事件 然后在ReportViewer1_RenderingComplete事件响应函数里,才设置Me.ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout) 但是这样会出现画面刷新两次的问题。 所以在Form_Load里面,数据填充前,先Me.ReportViewer1.Visible = False 在ReportViewer1_RenderingComplete事件响应函数里,设置DisplayMode.PrintLayout之前,先Me.ReportViewer1.Visible = True 还可以在Form上面加点提示信息之类的,用户就不会感到突兀了。 August 23 Web应用中解决编码问题1. 使用Filter
1.修改web.xml文件,在<web-app>标签后增加如下内容.
<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>com.filter.SetEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>shift_jis</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> December 29 IIS备忘录备忘:
安装完.Net之后,如果重新安装IIS,在装完IIS后,运行一下C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe /i
如果不能Debug,再来一下C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -r December 14 让你的程序在blog上多姿多彩当我写blog的时候,有时候需要把一些代码给贴上去,平时用IDE或者别的编辑器(如Editplus)写代码的时候,因为这些编辑环境有语法分析,所以程序的关键字和类等等的东西都能表示出不一样的颜色,但是当把这些代码贴到blog里面之后,颜色都没有了,只剩下黑色字体的干巴巴的代码:( 在前一个删除注释程序的基础上,作了一些修改,就成了现在这个可以给你的代码添加颜色的程序。注释就不写了,和上一个差不多,就是多了一些正则表达式的使用,用了一下也还行,那就这样吧。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> Delete comment </TITLE> <META NAME="Author" CONTENT="zc-peng"> </HEAD> <BODY> <textarea style="height:300;width:500" name="t1" onpropertychange=""></textarea> <textarea style="height:300;width:500" name="t3"></textarea> <input type="button" value="test" onclick="addColor()"> <DIV id="divedit" style="BORDER-RIGHT: black 2px solid; BORDER-TOP: black 2px solid; SCROLLBAR-FACE-COLOR: #dda0dd; SCROLLBAR-HIGHLIGHT-COLOR: #c3d6da; OVERFLOW: scroll; BORDER-LEFT: black 2px solid; WIDTH: 100%; SCROLLBAR-SHADOW-COLOR: #3d5054; COLOR: #000000; SCROLLBAR-3DLIGHT-COLOR: #3d5054; SCROLLBAR-ARROW-COLOR: #e6e6fa; BORDER-BOTTOM: black 2px solid; SCROLLBAR-DARKSHADOW-COLOR: #85989c; HEIGHT: 380px; BACKGROUND-COLOR: #e6e6fa" align=left CONTENTEDITABLE="false"></div> </BODY> <script> 关于注释删除程序的补充因为没有学过算法,凭自己想象去写,也不知道好不好,凑合用吧。
谈一下自己的理解。
单行注释://... 或 /*...*/
多行注释:/*...
...
*/
如果这些字符在字符串里面,就不是注释了;
如果字符串在注释里面,就不是字符串了;
还有js的正则表达式的特殊语法的捣乱;
还有转义字符\(反斜杠)的搞鬼;
所以,挺麻烦的。
反正是写完了,注释也写了不少,怕自己忘了,用了下还算比较好使,就这样吧。 December 13 JS:去掉Java代码中的注释(也适用于JS和C#)用JS写的,用网页作为载体。
欢迎有心人测试一下。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> Delete comment </TITLE> <META NAME="Author" CONTENT="zc-peng"> </HEAD> <BODY> <textarea style="height:300;width:500" name="t1" onpropertychange="deleteComment()"></textarea> <textarea style="height:300;width:500" name="t2"></textarea> </BODY> <script> December 12 Java:校验日期,以后用import java.util.Calendar;
import java.util.Date;
/**
* ********************************************************************
* クラス名 : PzcDate
* 作成者 : zc-peng
* 作成日 : 2005/12/12
*********************************************************************
*/
public class PzcDate{
public static void main(String[] args){
try {
checkDateUseCalendar(2005,2,1);
} catch (Exception e) {
e.printStackTrace();
}
try {
checkDateUseDate(2005,2,11);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void checkDateUseCalendar(int year,int month,int date) throws Exception{
System.out.println("------start checkDateUseCalendar-------");
//method 1 : use Calendar
Calendar ca = Calendar.getInstance();
//year : not like java.util.Date, no need to +1900
//month : the same as java.util.Date, need to -1, value are 0~11
//initialize : set the date to 1(must check date)
ca.set(year,month - 1,1);
if(year < 1900){
//before 1900, no use
throw new Exception("year error : Before 1900, no use." + " Current year is " + year);
}else if(month < 1 || month > 12){
//because input month value are 1~12
throw new Exception("month error : Input month value are 1~12." + " Current month is " + month);
}else{
//get days of the specific month
int day_of_month = ca.getActualMaximum(Calendar.DAY_OF_MONTH);
if(date < 1){
throw new Exception("date error : Date value are > 0." + " Current date is " + date);
}
if(date > day_of_month){
throw new Exception("date error : date > day_of_month." + " Current date is " + date + ", the max date of " + year + "/" + month + " is " + day_of_month);
}
//if check successfully, set the date
ca.set(Calendar.DATE,date);
}
System.out.println(ca);
System.out.println(ca.get(Calendar.YEAR));
System.out.println(ca.get(Calendar.MONTH) + "(0~11)");//attention : 0~11
System.out.println(ca.get(Calendar.DATE));
System.out.println("------end checkDateUseCalendar-------");
}
public static void checkDateUseDate(int year,int month,int date) throws Exception{
System.out.println("------start checkDateUseDate-------");
//method 2 : use Date
//year : need to +1900
//month : the same as java.util.Date, need to -1, value are 0~11
if(year < 1900){
//before 1900, no use
throw new Exception("year error : Before 1900, no use." + " Current year is " + year);
}else if(month < 1 || month > 12){
//because input month value are 1~12
throw new Exception("month error : Input month value are 1~12." + " Current month is " + month);
}else{
//get days of the specific month
//input month : 1~12
//because the constructor of java.util.Date need the month value(0~11),
//month - 1 : current month
//month : next month
//new Date(year - 1900,month,0) : the last date of current year and mont
Date temp = new Date(year - 1900,month,0);
int day_of_month = temp.getDate();
if(date < 1){
throw new Exception("date error : Date value are > 0." + " Current date is " + date);
}
if(date > day_of_month){
throw new Exception("date error : date > day_of_month." + " Current date is " + date + ", the max date of " + year + "/" + month + " is " + day_of_month);
}
}
Date specificDate = new Date(year - 1900,month - 1,date);
System.out.println(specificDate);
System.out.println(specificDate.getYear() + "(-1900)");//attention : -1900
System.out.println(specificDate.getMonth() + "(0~11)");//attention : 0~11
System.out.println(specificDate.getDate());
System.out.println("------end checkDateUseDate-------");
}
}
缺少DLL,上哪里找?缺少DLL哪里找
如果你的系统中缺少了DLL文件,而上面提到的各种运行库也未能收录,那就得自己动手查找DLL文件了。记录下缺少的DLL的文件名,再从别的电脑、Windows的安装光盘中查找并拷贝到自己的电脑中。另外,最快捷有效的方法就是通过Internet搜索下载。 到http://www.snapfiles.com/help/missingfiles.html、http://support.microsoft.com或http://www.dll-files.com/中输入完整文件名,再将查找到的文件下载、复制到系统的system32中即可。 -----以上的话引用一篇文章:必备文件 一个不少。
更有有心人给这些文件打了一个包:《系统必备文件》,文章里面提供有下载地址。
不错。
备注:VC运行库,VB6运行库,JRE,Java虚拟机,.NET Framework安装文件,Windows Installer(Windows 2000/XP),USB万能驱动,MyMPC.rar等。 December 09 关于Java的GUI编程工具今天发现一个写GUI的工具,叫“SWT Designer”,网上对它评价不错,可惜收费,残念。后来又发现有注册机(注册机的帖子,注册机下载地址),按照帖子的方法注册,果然好使,好。这个注册机对应的“SWT ...”版本是“SWT Designer v4.0.0”,是for Eclipse2.1的。
注册机的用法:这个注册机只要输入任意的英文字符,加上你的网卡MAC地址(通过Ipconfig /all来查看),就可以生成注册文件,将其拷贝至你的用户目录(C:\Documents and Settings\你的用户名\)底下就OK了。注册机是个jar文件,用命令行java -jar keygeno.jar运行,按照图片上的操作就行了。 Tomcat学习Tomcat\conf里面的server.xml和web.xml有好多值得学习的标记,注释很详细,有空研究研究。 October 18 一些关于web应用...web.xml :
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </web-app> Tomcat4.1中发布应用:
%tomcat_home%\conf\server.xml :
<Context path="/ajax" docBase="C:\TestAJAX" debug="0" reload="true"/> Tomcat5.0中发布应用:
1. %tomcat_home%\conf\Catalina\localhost下新建一个文件(如test.xml) :
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="c:\testAJAX" path="/x" reload="true"> </Context> 2. 跟在Tomcat4.1中发布的做法一样。 |
|
|