2013年7月6日 星期六
2013年4月7日 星期日
Java 常用到的日期問題
1.日期 = 上週 下週
2.日期 = 前一天 後一天
3.日期 = 相差天數
-------------------------上週 下週------------------------------------------
package com;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test01 {
public static void main(String args[]){
int i=0;
Calendar cal = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
int n = i;
String monday;
cal.add(Calendar.DATE, n*7);
monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
int n1 = i-1;
String monday1;
cal1.add(Calendar.DATE, n1*7);
monday1 = new SimpleDateFormat("yyyy-MM-dd").format(cal1.getTime());
System.out.println(monday1+" : "+monday);
}
}
-------------------------前一天 後一天-----------------------------------
package com;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test02 {
public static void main(String[] args) throws ParseException {
String Date_Text ="2013-03-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(Date_Text));
cal.add(Calendar.DATE, -1);//減一天
//cal.add(Calendar.MONTH, n);//增加一个月
System.out.println(" 增加一天 : "+ sdf.format(cal.getTime()));
}
}
--------------------------相差天數-----------------------------------
package com;
import java.util.Date;
public class Test03 {
public static void main(String[] args) {
String s1 = "2013-04-01";
String s2 = "2013-03-27";
String t1 = s1.replace('-','/');
String t2 = s2.replace('-','/');
try{
Date dt1= new Date(t1);
Date dt2= new Date(t2);
System.out.println("dt1="+dt1.getTime());
System.out.println("dt2="+dt2.getTime());
long l = dt1.getTime() - dt2.getTime();
System.out.println(l);
System.out.println("相差天數 "+l/60/60/1000/24);
}catch(Exception e){
System.out.println("exception"+e.toString());
}
}
}
2.日期 = 前一天 後一天
3.日期 = 相差天數
-------------------------上週 下週------------------------------------------
package com;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test01 {
public static void main(String args[]){
int i=0;
Calendar cal = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
int n = i;
String monday;
cal.add(Calendar.DATE, n*7);
monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
int n1 = i-1;
String monday1;
cal1.add(Calendar.DATE, n1*7);
monday1 = new SimpleDateFormat("yyyy-MM-dd").format(cal1.getTime());
System.out.println(monday1+" : "+monday);
}
}
-------------------------前一天 後一天-----------------------------------
package com;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test02 {
public static void main(String[] args) throws ParseException {
String Date_Text ="2013-03-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(Date_Text));
cal.add(Calendar.DATE, -1);//減一天
//cal.add(Calendar.MONTH, n);//增加一个月
System.out.println(" 增加一天 : "+ sdf.format(cal.getTime()));
}
}
--------------------------相差天數-----------------------------------
package com;
import java.util.Date;
public class Test03 {
public static void main(String[] args) {
String s1 = "2013-04-01";
String s2 = "2013-03-27";
String t1 = s1.replace('-','/');
String t2 = s2.replace('-','/');
try{
Date dt1= new Date(t1);
Date dt2= new Date(t2);
System.out.println("dt1="+dt1.getTime());
System.out.println("dt2="+dt2.getTime());
long l = dt1.getTime() - dt2.getTime();
System.out.println(l);
System.out.println("相差天數 "+l/60/60/1000/24);
}catch(Exception e){
System.out.println("exception"+e.toString());
}
}
}
2013年3月1日 星期五
2013年2月15日 星期五
Java - URLEncoder與Base64 編碼應用
Java - URLEncoder與Base64 編碼應用
java.net.URLEncoder.encode => 加密
java.net.URLDecoder.decode => 解密
最常用UTF-8跟Big5
API說明文件:
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html
PS:0到9還有 "
Base64編碼
如果想用把特殊符號等編碼就用Base64
請下載 commons-codec-1.7.jar 檔案
如果把一堆參數加在一起編碼用 - 符號等做區隔
像姓名跟年紀跟性別等參數加在一起編碼
然後再接收端區分 例如: 姓名-年紀-性別
java.net.URLEncoder.encode => 加密
java.net.URLDecoder.decode => 解密
最常用UTF-8跟Big5
API說明文件:
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html
PS:0到9還有 "
.",
"-", "*", "_"等特殊符號不能編碼如果想用把特殊符號等編碼就用Base64
請下載 commons-codec-1.7.jar 檔案
如果把一堆參數加在一起編碼用 - 符號等做區隔
像姓名跟年紀跟性別等參數加在一起編碼
然後再接收端區分 例如: 姓名-年紀-性別
Code:
import java.util.*;
public class Test03 {
public static void main(String args[]){
String Text1="ABC-DEF-GHI-JKL";
List<String> list = new ArrayList<String>();
System.out.println("文字長度 : "+Text1.length());
int l =Text1.length();
for(int i=0;i<=l;i++){
if(i==0){
// System.out.println(Text1.substring(0,i));
}else{
// System.out.println(Text1.substring(i-1,i));
if(Text1.substring(i-1,i).equals("-"))
{
System.out.println(Text1.substring(i-1,i));
System.out.println(" i : "+i);
list.add(String.valueOf(i));
}
}
}
System.out.println(" Size : "+list.size());
System.out.println("<-----擷取----->");
for(int j=0;j<list.size();j++)
{
System.out.println(list.get(j));
if(j==0){
System.out.println(Text1.substring(0,Integer.valueOf(list.get(j))-1));
}else{
System.out.println(Text1.substring(Integer.valueOf(list.get(j-1)),Integer.valueOf(list.get(j))-1));
}
}
}
}
public class Test03 {
public static void main(String args[]){
String Text1="ABC-DEF-GHI-JKL";
List<String> list = new ArrayList<String>();
System.out.println("文字長度 : "+Text1.length());
int l =Text1.length();
for(int i=0;i<=l;i++){
if(i==0){
// System.out.println(Text1.substring(0,i));
}else{
// System.out.println(Text1.substring(i-1,i));
if(Text1.substring(i-1,i).equals("-"))
{
System.out.println(Text1.substring(i-1,i));
System.out.println(" i : "+i);
list.add(String.valueOf(i));
}
}
}
System.out.println(" Size : "+list.size());
System.out.println("<-----擷取----->");
for(int j=0;j<list.size();j++)
{
System.out.println(list.get(j));
if(j==0){
System.out.println(Text1.substring(0,Integer.valueOf(list.get(j))-1));
}else{
System.out.println(Text1.substring(Integer.valueOf(list.get(j-1)),Integer.valueOf(list.get(j))-1));
}
}
}
}
2013年1月5日 星期六
JavaMelody 網頁監控程式
JavaMelody 官方網站
http://code.google.com/p/javamelody/
介紹:
JavaMelody
可監控網頁幾乎所有在運行的效能
例如:
Menory
CPU
Session
Thread => 執行緒
Active JDBC Connection 活動的JDBC 連線
Used jdbc connection 已使用JDBC 連線
JVM的效能監控
等等..............................(功能可以看官網的介紹)
1.首先到官網下載war檔案
http://code.google.com/p/javamelody/downloads/list
2.在Eclipse 引用war檔案
3.準備在自己的專案加入JavaMelody元件
javamelody.jar 和 jrobin-x.jar
並在專案web.xml加入一些文字
下載兩個檔案 的ZIP
加入文字
4.啟動Tomcat
請記得將您的專案和Javamelody 在Tomcat底下一起執行
5.執行後
http://code.google.com/p/javamelody/
介紹:
JavaMelody
可監控網頁幾乎所有在運行的效能
例如:
Menory
CPU
Session
Thread => 執行緒
Active JDBC Connection 活動的JDBC 連線
Used jdbc connection 已使用JDBC 連線
JVM的效能監控
等等..............................(功能可以看官網的介紹)
1.首先到官網下載war檔案
http://code.google.com/p/javamelody/downloads/list
2.在Eclipse 引用war檔案
3.準備在自己的專案加入JavaMelody元件
javamelody.jar 和 jrobin-x.jar
並在專案web.xml加入一些文字
下載兩個檔案 的ZIP
<filter> <filter-name>monitoring</filter-name> <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> </filter> <filter-mapping> <filter-name>monitoring</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>net.bull.javamelody.SessionListener</listener-class> </listener>
4.啟動Tomcat
請記得將您的專案和Javamelody 在Tomcat底下一起執行
5.執行後
2012年12月16日 星期日
log4jdbc元件 Java資料庫追蹤
log4jdbc
官方網站:
https://code.google.com/p/log4jdbc/
log4jdbc4-1.2.jar
log4j-1.2.16.jar
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar
<init-param>
<param-name>log4j-properties-location</param-name>
<param-value>WEB-INF\classes\log4j.properties</param-value>
</init-param>
</servlet>
如果不知道log4j.properties跟log4j.xml要放哪些內容
可以參考官網5. Set up your loggers. 裡面有 log4j.properties跟log4j.xml可以看~也可以直接複製
Class.forName("net.sf.log4jdbc.DriverSpy");
然後
conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/Test01","OO","OOO");
記得加入log4jdbc等字串會變成
conn = DriverManager.getConnection("jdbc:log4jdbc:jtds:sqlserver://localhost:1433/Test01","OO","OOO");
然後你在Console控制台可以看到資料庫操作印出來的結果
是記錄資料庫操作與法跟回傳值
官方網站:
https://code.google.com/p/log4jdbc/
1.首先先下載 jar元件
log4jdbc4-1.2.jar
log4j-1.2.16.jar
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar
2.並在web.xml 加入等字串(切記log4j.properties等檔案我是放在WEB-INF\classes\底下)
<servlet><init-param>
<param-name>log4j-properties-location</param-name>
<param-value>WEB-INF\classes\log4j.properties</param-value>
</init-param>
</servlet>
3.並在WEB-INF\classes\底下新增兩個檔案log4j.properties跟log4j.xml
如果不知道log4j.properties跟log4j.xml要放哪些內容
可以參考官網5. Set up your loggers. 裡面有 log4j.properties跟log4j.xml可以看~也可以直接複製
4.並放上更改驅動程式
本來是Class.forName("net.sourceforge.jtds.jdbcx.JtdsDataSource");把它改成log4jdbc驅動Class.forName("net.sf.log4jdbc.DriverSpy");
然後
conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/Test01","OO","OOO");
記得加入log4jdbc等字串會變成
conn = DriverManager.getConnection("jdbc:log4jdbc:jtds:sqlserver://localhost:1433/Test01","OO","OOO");
然後你在Console控制台可以看到資料庫操作印出來的結果
使用Debug模式也可以到達一樣的效果 ~ 只不過比較麻煩:
2012年10月23日 星期二
2012年10月21日 星期日
2012年10月12日 星期五
2012年7月26日 星期四
2012年7月9日 星期一
2012年7月8日 星期日
2012年7月6日 星期五
2012年7月3日 星期二
力學-轉動慣量
力學-轉動慣量
公式:
公式:
假設有一個圓盤
R 半徑為: 1m
M 質量為: 8kg
套第一個公式(假設是縱放)
8/4= 2 kgm^2
套第二個公式(假設是橫放)
8/2= 4 kgm^2
然後有看到一個日本的網站
(老實說讓我覺得日本工業強盛~不是沒有理由的說 QQ)
KHK STOCK GEARS Website 網站
http://www.khkgears.co.jp/
公式:
KHK STOCK GEARS Website Training Example Reference Guide :
http://www.khkgears.co.jp/tw/gear_technology/
http://www.khkgears.co.jp/
公式:
KHK STOCK GEARS Website Training Example Reference Guide :
http://www.khkgears.co.jp/tw/gear_technology/
點進去 齒輪技術資料 會看到 齒輪技術資料(PDF版)
2012年6月30日 星期六
伺服馬達跟驅動器之所需脈波
電子齒輪比=CMX/CDV
CMX代入→馬達額定轉速(rpm)×馬達ENCORDER分解能
CDV代入→脈波產生器之最高速率(PULSE/秒)× 60(秒/分)
馬達額定轉速(rpm:1分鐘轉)
馬達ENCORDER分解能(pulse/圈)→馬達轉一圈需給的pulse數
脈波產生器之最高速率(pulse/秒)
因此未化簡前 CMX(分子)就是馬達以額定轉速轉一分鐘所需的pulse數
CDV(分母)就是脈波產生器一分鐘所能產生之最多pulse數
所以假設:
馬達 一分鐘轉 3000 圈
轉一圈需要脈波:131072 Pulse
但是如果我選用驅動器最大輸出200k
200kHz=200000Hz
那麼
(1310702 Pulse * 3000 prm) /(200000Hz * 60 sec)
393216000/12000000=32.768
4096/125 =32.768
驅動器輸入CMX:4096 CDV:125
1310702/32.768 = 4000
馬達轉一圈需要從脈波產生器丟出4000個pulse,額定轉速依然是3000rpm
而有些伺服馬達是本身跟驅動器已經結合在一起的說
另外可以參考一下:
寶祥電子:PDF檔案
進去之後點 : 資源下載 然後會看到 操作手冊下載
看到最後一項 整合式SLIM5馬達
下載此PDF 到33頁會另外介紹他的脈波輸入的計算
http://www.1111motor.com/
CMX代入→馬達額定轉速(rpm)×馬達ENCORDER分解能
CDV代入→脈波產生器之最高速率(PULSE/秒)× 60(秒/分)
馬達額定轉速(rpm:1分鐘轉)
馬達ENCORDER分解能(pulse/圈)→馬達轉一圈需給的pulse數
脈波產生器之最高速率(pulse/秒)
因此未化簡前 CMX(分子)就是馬達以額定轉速轉一分鐘所需的pulse數
CDV(分母)就是脈波產生器一分鐘所能產生之最多pulse數
所以假設:
馬達 一分鐘轉 3000 圈
轉一圈需要脈波:131072 Pulse
但是如果我選用驅動器最大輸出200k
200kHz=200000Hz
那麼
(1310702 Pulse * 3000 prm) /(200000Hz * 60 sec)
393216000/12000000=32.768
4096/125 =32.768
驅動器輸入CMX:4096 CDV:125
1310702/32.768 = 4000
馬達轉一圈需要從脈波產生器丟出4000個pulse,額定轉速依然是3000rpm
而有些伺服馬達是本身跟驅動器已經結合在一起的說
另外可以參考一下:
寶祥電子:PDF檔案
進去之後點 : 資源下載 然後會看到 操作手冊下載
看到最後一項 整合式SLIM5馬達
下載此PDF 到33頁會另外介紹他的脈波輸入的計算
http://www.1111motor.com/
2012年6月29日 星期五
三用電錶
三用電錶
一般來說只要會用三用電錶
在檢測電器產品 ~ 幾乎等於維修
(幾乎只要用電壓去測有沒有通電而以~來判斷該零件是否壞掉)
因為被媽媽叫去修電風扇 ~結果一開打看到電源線斷了
連測都不用測就直接用焊接把他接好就可以動了
(不過一打開電風扇 ~ 阿鳥威 ~ 小強超多的~嚇的我花容失色)
正常來說那種長長的插頭
我都用交流電壓來測量他的電源線有沒有通
至於要用直流電壓測量的是著種 ~ 一般外面賣的電源供應器
5V電源 影片:
像著個範例~就是很明顯的馬達的問題:
用交流電壓測量
連接電風扇的四條電源線
期中兩條就是+跟+ 正極跟負極
影片中:電風扇共有3種速度
1速:110~120之間
2速:100~119之間
3速:90~100之間
訂閱:
文章 (Atom)





















































