台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
2411
 
會員總數:230269
接案會員:6772
文章總數:2320
討論主題:176076
歡迎您免費加入會員
討論區列表 >> ASP >> 民國西元互換

[變換順序]
[我要回覆]


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
民國西元互換
價值 : 10 QP  點閱數:6648 回應數:20

點圖分享到Plurk吧!
樓主

TACO
初學者
75 142
1874 357
發送站內信

請問有無民國西元互換的函數?

因為作業需要不知道有無這種函數
本篇文章發表於2005-08-19 11:03
什麼是iT Power資訊報 新手會員瞧一瞧
1樓
不錯的參考

得意
捐贈 VP 給 得意 檢舉此回應
應該沒有
但是可以自己寫
很簡單

民國=西元-1911

就可以了


本篇文章回覆於2005-08-19 11:09
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

TACO
檢舉此回應
dateadd("yyyy",-1911,#2005/01/01#)

不成立~"~


本篇文章回覆於2005-08-19 11:13
--未登入的會員無法查看對方簽名檔--
3樓
dateadd("yyyy",-1911,#2005/01/01#)
這樣感覺怪怪的喔
這句的結果 = 西元2005 - 1911 = 西元94年
而不是民國94年



本篇文章回覆於2005-08-19 11:23
--未登入的會員無法查看對方簽名檔--
4樓
try this
Sub YYMMDD(d)
	y = year(d)
	if y > 1911 then
		response.write "民國" & (y-1911) & "年"
	else
		response.write "民國前" & (1911-y+1) & "年"
	end if
	response.write month(d) &"月"	
	response.write day(d) & "日"
End Sub	




本篇文章回覆於2005-08-19 11:30
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

TACO
檢舉此回應
2005-1911=94

顯示出來不就變成民國的年份了?

我只是想說顯示出來是94/01/01

我把問題點說出來好了
因為SQLSERVER的DATETIME格式只支援西元

但是在用的都是民國

所以表格輸入94/01/01存到資料庫時我會用語法dateadd("yyyy",11,#94/01/01#)

到資料庫自然變成2005/01/01

但是在輸出時還是得用民國
94/01/01
但是用dateadd("yyyy",-1911,#2005/01/01#)
無法執行
好像不能讓西元被減掉後<100年

所以在找方法

問我為啥不用文字欄位就好?
因為有需要加減時用時間欄位比較方便省的轉
也不想讓使用者輸入其他的東西




本篇文章回覆於2005-08-19 11:31
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

TACO
檢舉此回應
回覆一下@@我輸出不需要帶出民國或是西元

因為看資料的年齡層都是只會看民國的年齡層


本篇文章回覆於2005-08-19 11:33
--未登入的會員無法查看對方簽名檔--
7樓
拜託! 改一下就好啦!
Sub YYMMDD(d)
	y = year(d)
	response.write (y-1911) & "/" & month(d) & "/" & day(d)
End Sub




本篇文章回覆於2005-08-19 11:38
--未登入的會員無法查看對方簽名檔--
8樓
不錯的參考

老頑童
捐贈 VP 給 老頑童 檢舉此回應
就如同不來ㄣ所說的
這樣算出來的是「西元94年」
而ASP的日期範圍只能介於100/1/1 ~ 9999/12/31之間
所以94/1/1是不被接受的


本篇文章回覆於2005-08-19 11:38
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

TACO
檢舉此回應
意思是只能拉年出來做數字的加減就對了@@


本篇文章回覆於2005-08-19 11:40
--未登入的會員無法查看對方簽名檔--
10樓
用法:
<%
Sub YYMMDD(d)
	y = year(d)
	response.write (y-1911) & "/" & month(d) & "/" & day(d)
End Sub

d = #2005/01/01#
YYMMDD(d)
%>





本篇文章回覆於2005-08-19 11:40
--未登入的會員無法查看對方簽名檔--
11樓
改短一點點
Sub YYMMDD(d)
	response.write (year(d)-1911) & "/" & month(d) & "/" & day(d)
End Sub




本篇文章回覆於2005-08-19 11:42
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

TACO
檢舉此回應
請問民國轉西元呢?


本篇文章回覆於2005-08-23 14:05
--未登入的會員無法查看對方簽名檔--
13樓
民國+1911=西元年


本篇文章回覆於2005-08-23 14:11
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

TACO
檢舉此回應
我的作法
Y="94/01/01"
Y=dateadd("yyyy",11,cdate(y))
這樣可行嗎?

輸出的值是沒錯只怕將來破100年會不會有任何變數?


本篇文章回覆於2005-08-23 14:15
--未登入的會員無法查看對方簽名檔--
15樓
回應

得意
捐贈 VP 給 得意 檢舉此回應
跟你分享幾個觀念

像這樣的問題
其實你可以自己動手去寫看看
如果寫不出來
先去找資料
還是找不到再上來請教
這樣你自己才會進步
不然別人都一直給你答案
你吸收是有限的

給他魚 不如給他釣竿
給他釣竿 不如教他如何釣魚

另外#5中提到
>>也不想讓使用者輸入其他的東西
不想讓使用者輸入其他的東西可以在表單驗證上下功夫
並不是輸入錯誤
再讓後端資料庫顯示錯誤訊息的
這樣如果碰到有心人要破你的網站
是很容易露出端倪的

加油了


本篇文章回覆於2005-08-23 14:23
--未登入的會員無法查看對方簽名檔--
[變換順序]
 

回覆
如要回應,請先登入.