﻿<?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 AJAX C++-随笔分类-小巧实例</title><link>http://www.blogjava.net/itspy/category/17170.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 29 Apr 2008 02:33:37 GMT</lastBuildDate><pubDate>Tue, 29 Apr 2008 02:33:37 GMT</pubDate><ttl>60</ttl><item><title>SQL server 常用时间函数[转]</title><link>http://www.blogjava.net/itspy/archive/2008/04/29/197020.html</link><dc:creator>itspy</dc:creator><author>itspy</author><pubDate>Tue, 29 Apr 2008 01:25:00 GMT</pubDate><guid>http://www.blogjava.net/itspy/archive/2008/04/29/197020.html</guid><wfw:comment>http://www.blogjava.net/itspy/comments/197020.html</wfw:comment><comments>http://www.blogjava.net/itspy/archive/2008/04/29/197020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itspy/comments/commentRss/197020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itspy/services/trackbacks/197020.html</trackback:ping><description><![CDATA[来源:<font style="background-color: #cce8cf">http://www.xici.net/b3761/d43293.htm</font><br />
<br />
在开发数据库应用中，经常会遇到处理时间的问题，如查询指定时间的记录等。下面就这些常见的问题，结合自己的一些经验，和大家探讨一下这类问题。<br />
<br />
首先介绍一下，SQL Server里处理时间的几个主要函数的用法：<br />
<br />
<br />
getdate()函数：取得系统当前的日期和时间。返回值为datetime类型的。　<br />
　　　　　　　用法：getdate()<br />
　　　　　　　例子： <br />
　　　　　　　select getdate() as dte,dateadd(day,-1,getdate()) as nowdat <br />
　　　　　　　输出结果： <br />
　　　　　　　dte　　　　　　　　　　　　　　nowdat <br />
　　　　　　　---------------------------　　---------------------------<br />
　　　　　　　1999-11-21 19:13:10.083　　　　1999-11-20 19:13:10.083 <br />
　　<br />
　　　　　　　(1 row(s) affected)<br />
　　　　　　　<br />
datepart()函数：以整数的形式返回时间的指定部分。 <br />
　　　　　　　 用法：datepart(datepart,date)<br />
　　　　　　　 参数说明：datepart时要返回的时间的部分，常用取值year、month、day、hour、minute。<br />
　　　　　　　　　　　　 date是所指定的时间。<br />
　　　　　　　 例子：<br />
　　　　　　　 SELECT DATEPART(month, GETDATE()) AS 'Month Number'<br />
　　　　　　　 输出结果：<br />
　　　　　　　 Month Number <br />
　　　　　　　 ------------ <br />
　　　　　　　 11<br />
<br />
　　　　　　　 (1 row(s) affected)<br />
<br />
dateadd()函数：通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。<br />
　　　　　　　 用法：dateadd(datepart,number,date)<br />
　　　　　　　 参数说明：datepart(同上）<br />
　　　　　　　　　　　　 date(同上)<br />
　　　　　　　　　　　　 number要增加的值，整型，可正可负，正值返回date之后的时间值，负值返回date<br />
　　　　　　　　　　　　 之前的时间值<br />
　　　　　　　 例子：<br />
　　　　　　　　 select getdate() as today<br />
　　　　　　　　 select dateadd(day,-1,getdate())<br />
　　　　　　　　 select dateadd(day,1,getdate())<br />
　　　　　　　 输出：<br />
　　　　　　　　 today　　　　　　　　　　　 <br />
　　　　　　　　 --------------------------- <br />
　　　　　　　　 1999-11-21 19:42:41.410<br />
<br />
　　　　　　　　 (1 row(s) affected)<br />
<br />
　　　　　　　　 yesterday　　　　　　　　　 <br />
　　　　　　　　 --------------------------- <br />
　　　　　　　　 1999-11-20 19:42:41.410<br />
<br />
　　　　　　　　 (1 row(s) affected)<br />
<br />
　　　　　　　　 tomorrow　　　　　　　　　　<br />
　　　　　　　　 --------------------------- <br />
　　　　　　　　 1999-11-22 19:42:41.410<br />
<br />
　　　　　　　　 (1 row(s) affected)<br />
<br />
datediff()函数：返回两个时间以指定时间部分来计算的差值。返回整数值。如1991-6-12和1991-6-21之间以天 <br />
　　　　　　　　来算相差9天,1998-6-12和1999-6-23按年算相差1年，1999-12-1和1999-3-12按月算相差9个月<br />
　　　　　　　　用法：datediff(darepart,date1,date2)<br />
　　　　　　　　参数说明：datepart（同上)<br />
　　　　　　　　　　　　　date1、date2(同上date)<br />
　　　　　　　　例子：<br />
　　　　　　　　　select datediff(month,'1991-6-12','1992-6-21') as a<br />
　　　　　　　　输出：<br />
　　　　　　　　　a　　　　　 <br />
　　　　　　　　　----------- <br />
　　　　　　　　　12<br />
<br />
　　　　　　　　　(1 row(s) affected)
<img src ="http://www.blogjava.net/itspy/aggbug/197020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itspy/" target="_blank">itspy</a> 2008-04-29 09:25 <a href="http://www.blogjava.net/itspy/archive/2008/04/29/197020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>两个JS对象怎样才能相等</title><link>http://www.blogjava.net/itspy/archive/2007/10/27/156290.html</link><dc:creator>itspy</dc:creator><author>itspy</author><pubDate>Fri, 26 Oct 2007 16:42:00 GMT</pubDate><guid>http://www.blogjava.net/itspy/archive/2007/10/27/156290.html</guid><wfw:comment>http://www.blogjava.net/itspy/comments/156290.html</wfw:comment><comments>http://www.blogjava.net/itspy/archive/2007/10/27/156290.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/itspy/comments/commentRss/156290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itspy/services/trackbacks/156290.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在JS中，两个对象如何才能相等？下面的两个 Alert，只有一个输出true. <br><br> var prop1 = {asd:{def:'abc'}};<br><br> var prop2 = {asd:{def:'abc'}};<br>  <br> alert( prop1==prop2)//false<br> <br> alert( prop1['asd']==prop2['asd'] ) ;//false<br><br> alert( prop1['asd']['def']==prop1['asd']['def'] ) ; //true<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/itspy/archive/2007/10/27/156290.html'>阅读全文</a><img src ="http://www.blogjava.net/itspy/aggbug/156290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itspy/" target="_blank">itspy</a> 2007-10-27 00:42 <a href="http://www.blogjava.net/itspy/archive/2007/10/27/156290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单词缩写应该使用怎样的命名规范？</title><link>http://www.blogjava.net/itspy/archive/2007/05/14/117249.html</link><dc:creator>itspy</dc:creator><author>itspy</author><pubDate>Mon, 14 May 2007 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/itspy/archive/2007/05/14/117249.html</guid><wfw:comment>http://www.blogjava.net/itspy/comments/117249.html</wfw:comment><comments>http://www.blogjava.net/itspy/archive/2007/05/14/117249.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/itspy/comments/commentRss/117249.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itspy/services/trackbacks/117249.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: XML，HTTP，ID，HTML。在开发中，你遇到这些缩写字符，你是如何对其命名的呢，是全部大写，还是只大写第一个字符？<br><br>你对这个问题困惑过吗？<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/itspy/archive/2007/05/14/117249.html'>阅读全文</a><img src ="http://www.blogjava.net/itspy/aggbug/117249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itspy/" target="_blank">itspy</a> 2007-05-14 10:05 <a href="http://www.blogjava.net/itspy/archive/2007/05/14/117249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打印出Ibatis最终的SQL语句</title><link>http://www.blogjava.net/itspy/archive/2007/02/11/99232.html</link><dc:creator>itspy</dc:creator><author>itspy</author><pubDate>Sun, 11 Feb 2007 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/itspy/archive/2007/02/11/99232.html</guid><wfw:comment>http://www.blogjava.net/itspy/comments/99232.html</wfw:comment><comments>http://www.blogjava.net/itspy/archive/2007/02/11/99232.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/itspy/comments/commentRss/99232.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itspy/services/trackbacks/99232.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 做项目时遇到这样的需求，希望能打印出最终数据库执行的SQL语句，一般遇到这些有一定通用性的问题，我都会到Appfuse中去找找例子，结果这次没有成功。<br>Appfuse是有相关的配置，但是好像没有用，不过关于Hibernate的倒是有用，我想这种问题网上肯定有人遇到过，只要找到这个人就行了。<br><br>经过切换不同的关键字，我最后找到了正确的配置。&nbsp;&nbsp;<a href='http://www.blogjava.net/itspy/archive/2007/02/11/99232.html'>阅读全文</a><img src ="http://www.blogjava.net/itspy/aggbug/99232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itspy/" target="_blank">itspy</a> 2007-02-11 11:22 <a href="http://www.blogjava.net/itspy/archive/2007/02/11/99232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>百度面试题目的答案[原创]</title><link>http://www.blogjava.net/itspy/archive/2006/11/10/80435.html</link><dc:creator>itspy</dc:creator><author>itspy</author><pubDate>Fri, 10 Nov 2006 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/itspy/archive/2006/11/10/80435.html</guid><wfw:comment>http://www.blogjava.net/itspy/comments/80435.html</wfw:comment><comments>http://www.blogjava.net/itspy/archive/2006/11/10/80435.html#Feedback</comments><slash:comments>52</slash:comments><wfw:commentRss>http://www.blogjava.net/itspy/comments/commentRss/80435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itspy/services/trackbacks/80435.html</trackback:ping><description><![CDATA[
		<p>最近有同学找工作,经常在班级群里发一些大公司的面试,笔试题目.昨天收到这样一个题目,据说是百度的面试题目.</p>
		<p> 有一根27厘米的细木杆，在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。 木杆很细，不能同时通过一只蚂蚁。开始 时，蚂蚁的头朝左还是朝右是任意的，它们只会朝前走或调头， 但不会后退。当任意两只蚂蚁碰头时，两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。 编写程序，求所有蚂蚁都离开木杆 的最小时间和最大时间。</p>
		<p>看了这个题目之后,突然很感兴趣,今天搞了半天把它做出来了,大概花了1个半小时.大公司的题目真是考人.反正都已经用算法实现了,我就不多说了,大家看代码吧.代码里面注释我也尽量全写了.一共有两个类,一个是Ant的模型,一个是控制类.原代码,大家可以在这取得:<br /><br /><font style="BACKGROUND-COLOR: #ffc0cb">http://www.blogjava.net/Files/itspy/baidu.rar</font><br /></p>
		<p>
				<br />
				<br />//////////////////////////////////////<br />/*百度面试题<br /> * 有一根27厘米的细木杆，在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。<br /> * 木杆很细，不能同时通过一只蚂蚁。开始 时，蚂蚁的头朝左还是朝右是任意的，它们只会朝前走或调头，<br /> * 但不会后退。当任意两只蚂蚁碰头时，两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。<br /> * 编写程序，求所有蚂蚁都离开木杆 的最小时间和最大时间。<br /> * <br /> * <br /> * 分析:题目中的蚂蚁只可能相遇在整数点,不可以相遇在其它点,比如3.5cm处之类的,也就是可以让每只蚂蚁走 1秒,然后<br /> * 查看是否有相遇的即可.<br /> * <br /> * 这样我的程序实现思路就是,初始化5只蚂蚁,让每只蚂蚁走1秒,然后看是否有相遇的,如果有则做相应处理.当每只蚂蚁都<br /> * 走出木杆时,我就记录当前时间.这样就可以得到当前状态情况下,需要多久可以走出木杆,然后遍历所有状态则可以得到所胡<br /> * 可能.<br /> */</p>
		<p>package baidu;</p>
		<p>public class Ant {<br /> /*<br />  * step 表示蚂蚁每一个单位时间所走的长度<br />  */<br /> private final static int step = 1;</p>
		<p> /*<br />  * position表示蚂蚁所处的初始位置<br />  */<br /> private int position;</p>
		<p> /*<br />  * direction表示蚂蚁的前进方向，如果为1表示向27厘米的方向走， 如果为－1，则表示往0的方向走。<br />  */<br /> private int direction = 1;</p>
		<p> /*<br />  * 此函数运行一次，表示蚂蚁前进一个单位时间，如果已经走下木杆则会抛出异常<br />  */<br /> public void walk() {<br />  if (isOut()) {<br />   throw new RuntimeException("the ant is out");<br />  }<br />  position = position + this.direction * step;<br /> };</p>
		<p>
				<br /> /**<br />  * 检查蚂蚁是否已经走出木杆，如果走出返回true<br />  *<br />  */</p>
		<p> public boolean isOut() {<br />  return position &lt;= 0 || position &gt;= 27;<br /> }</p>
		<p> /**<br />  * 检查此蚂蚁是否已经遇到另外一只蚂蚁<br />  * @param ant<br />  * @return 如果遇到返回true<br />  */<br /> public boolean isEncounter(Ant ant) {<br />  return ant.position == this.position;<br /> }</p>
		<p> /**<br />  * 改变蚂蚁的前进方向<br />  */<br /> public void changeDistation() {<br />  direction = -1 * direction;<br /> }</p>
		<p>
				<br /> /**<br />  * 构造函数,设置蚂蚁的初始前进方向,和初始位置<br />  * @param position<br />  * @param direction<br />  */<br /> public Ant(int position, int direction) {<br />  this.position = position;<br />  if (direction != 1) {<br />   this.direction = -1;//方向设置初始位置,比如为0时,也将其设置为1.这样可以方便后面的处理<br />  } else {<br />   this.direction = 1;<br />  }<br /> }</p>
		<p>}</p>
		<p> </p>
		<p>/////////////////////////////////////////////////////////</p>
		<p>
				<br />package baidu;</p>
		<p>public class Controller {</p>
		<p> public static void main(String[] args) {</p>
		<p>  int time = 0;<br />  for (int i = 0; i &lt; 32; i++) {<br />   Ant[] antArray = getAntList(getPoistions(), getDirections(i));<br />   while (!isAllOut(antArray)) {<br />    for (Ant ant : antArray) {<br />     if (!ant.isOut()) {<br />      ant.walk();<br />     }<br />    }<br />    time++;<br />    // 查看是否有已经相遇的Ant,如果有则更改其前进方向<br />    dealEncounter(antArray);<br />   }<br />   System.out.println(time);</p>
		<p>   // 将时间归0,这样可以重新设置条件,再次得到全部走完所需要的时间.<br />   time = 0;<br />  }</p>
		<p> }</p>
		<p> /**<br />  * 这个函数的算法很乱，但暂时能解决问题<br />  * <br />  * @param list<br />  */<br /> public static void dealEncounter(Ant[] antArray) {</p>
		<p>  int num_ant = antArray.length;<br />  for (int j = 0; j &lt; num_ant; j++) {<br />   for (int k = j + 1; k &lt; num_ant; k++) {<br />    if (antArray[j].isEncounter(antArray[k])) {<br />     antArray[j].changeDistation();<br />     antArray[k].changeDistation();<br />    }<br />   }<br />  }</p>
		<p> }</p>
		<p> /**<br />  * 因为有5只Ant，所以组合之后有32种组合.刚好用5位二进制来表示,如果为0则表示Ant往0的方向走 如果为1,则表示往27的方向走<br />  * <br />  * 注:在通过Ant的构造函数设置初始值时,通过过滤把0修改成了-1.<br />  */<br /> public static int[] getDirections(int seed) {<br />  int result[] = new int[5];<br />  result[0] = seed % 2;<br />  result[1] = seed / 2 % 2;<br />  result[2] = seed / 4 % 2;<br />  result[3] = seed / 8 % 2;<br />  result[4] = seed / 16 % 2;</p>
		<p>  System.out.println("directions is " + result[0] + "|" + result[1] + "|"<br />    + result[2] + "|" + result[3] + "|" + result[4]);</p>
		<p>  return result;</p>
		<p> }</p>
		<p> /**<br />  * 批量设置Ant的初始位置,这样设置不是十分必要,可以直接在代码中设置<br />  * <br />  * @return<br />  */<br /> public static int[] getPoistions() {<br />  return new int[] { 3, 7, 11, 17, 23 };<br /> }</p>
		<p> /**<br />  * 取得设置好初始值的5只Ant<br />  * <br />  * @param positions<br />  * @param directions<br />  * @return<br />  */<br /> public static Ant[] getAntList(int[] positions, int[] directions) {<br />  Ant ant3 = new Ant(positions[0], directions[0]);<br />  Ant ant7 = new Ant(positions[1], directions[1]);<br />  Ant ant11 = new Ant(positions[2], directions[2]);<br />  Ant ant17 = new Ant(positions[3], directions[3]);<br />  Ant ant23 = new Ant(positions[4], directions[4]);</p>
		<p>  return new Ant[] { ant3, ant7, ant11, ant17, ant23 };<br /> }</p>
		<p> /**<br />  * 判断是否所有的Ant都已经走出了木杆,也就是设置退出条件<br />  * <br />  * @param antArray<br />  * @return<br />  */<br /> public static boolean isAllOut(Ant[] antArray) {<br />  for (Ant ant : antArray) {<br />   if (ant.isOut() == false) {<br />    return false;<br />   }<br />  }<br />  return true;<br /> }<br />}</p>
		<p> </p>
<img src ="http://www.blogjava.net/itspy/aggbug/80435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itspy/" target="_blank">itspy</a> 2006-11-10 16:46 <a href="http://www.blogjava.net/itspy/archive/2006/11/10/80435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>