痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 8465|回復: 49

我這兩天一直在修改我自創的商務軟體

  [複製鏈接]
發表於 2011-3-11 10:04:27 | 顯示全部樓層 |閱讀模式
本帖最後由 shunxing 於 2011-3-11 05:46 PM 編輯

讓大家看一下我這幾天在修改的重點...
雖然這軟體已經用了3個多月了
早就修改一些BUG了...
但有個地方美中不足..就是還片的時間...
我的系統是24小時為一天...
現在要改成在隔天的同一個時間之後在晚上12點前還算是同一天..
為了改這個我的頭快燒了...
畢竟這是3年前我自己花了約1年的時間所寫出來的系統......
早就快把時間的處理系統望光了.....頭痛阿~~~~
來分享些這一部份的程式碼...讓大家也頭暈一下吧~~哈哈哈哈~~~~~

下面這只是其中一個檔案用在處理還片的....
我寫出來的程式檔案至少有368個........


#####################################
#            興紋商務軟體           #
#      本軟體版權為鄭順興個人所有   #
#         若沒有本人書面同意        #
#      請勿仿冒或修改否則依法究辦   #
#####################################
sub rentaswellrentup { #客戶還片資料處理

#######################################################################


$regcolor = "syscolor.txt";
   @consc=&readtxtfile("$filehead$regcolor",2);
   @consc=sort @consc;
   foreach (@consc) {
    ($coloret ,$ca ,$cb ,$cc ,$cd ,$ce ,$cf ,$cg ,$ch ,$ci ,$cj)=split(/∥/,$_);
chomp($cj);
if ($syscolors eq $coloret){

$color1 = "$coloret"; #顏色識別
$color2 = "$ca"; #箭頭顏色
$color3 = "$cb"; #轉軸外部外框顏色
$color4 = "$cc"; #轉軸內部背景顏色
$color5 = "$cd"; #轉軸外部背景顏色
$color6 = "$ce"; #轉軸內部外框顏色
$color7 = "$cf"; #背景顏色
$color8 = "$cg"; #文字顏色
$color9 = "$ch"; #連接顏色
$color10 = "$ci"; #瀏覽過的連接顏色
$color11 = "$cj"; #使用中的連接顏色
}
   }

$udditt=0;
$adminusertid             =&get_var('adminusertid'             ,'\n|"|<|>|∥');
$scandatain             =&get_var('scandatain'             ,'\n|"|<|>|∥');
if ($adminusertid =~ /[^a-zA-Z0-9]/) { &errorjava("請勿非法修改程式"); }
if ($adminusertid eq "") { &errorjava("客戶ID錯誤請登入客戶資料"); }
if ($scandatain eq "") { &errorjava("商品條碼空白請重新輸入"); }
$scandatain=~ tr/a-z/A-Z/;

$userfortup = "userformat"; #客戶資料夾名稱
$mdretyu = "$filehead$userfortup";
unless(-d $mdretyu) { #檢查是否存在客戶資料夾
mkdir("$mdretyu",0777); #建立客戶資料夾並修改檔案屬性
}
$rentaswell = "rentaswell"; #客戶出租確認資料夾名稱
$mdretyus = "$mdretyu/$rentaswell";
unless(-d $mdretyus) { #檢查是否存在客戶出租確認資料夾
mkdir("$mdretyus",0777); #建立客戶出租確認資料夾並修改檔案屬性
}
$datafortup = "dataformat"; #資料庫資料夾名稱
$mdretyu = "$filehead$datafortup";
unless(-d $mdretyu) { #檢查是否存在資料庫資料夾
mkdir("$mdretyu",0777); #建立資料庫資料夾並修改檔案屬性
}

$scardatasup = "$filehead$datafortup/dataformats.txt";
@usertyutvs=&readtxtfile($scardatasup,2);
@usertyutvs=sort @usertyutvs;
   foreach (@usertyutvs) {  #讀取資料庫資料並比對
    ($messtimenlisr,$datamine1ster,$datamine2ster,$datamine3ster,$datamine4ster,$datamine5ster,$datamine6ster)=split(/∥/,$_);
chomp($datamine6ster);
if ($scandatain eq $datamine2ster) {

$scmesside = "$messtimenlisr";


  }
}

if ($scmesside eq "") { &errorjava("無此商品編號請重新輸入"); }
$datareallno=0;
$dataformattxt = "$datafortup/$scmesside/rentaswelldataformat.txt"; #租還系統已出租資料索引區
$peo="$filehead$dataformattxt"; #檢查是否有租還系統已出租資料索引區檔案存在並建立檔案
unless(-f $peo){
open(TMP,">$peo");
close(TMP);
chmod(0666,$peo);
}
@usertyutvsf=&readtxtfile($peo,2);
@usertyutvsf=sort @usertyutvsf;
open (FILE, ">$peo");
   foreach (@usertyutvsf) {  #讀取資料庫資料並比對
    ($messtimenlisre,$datare1ste,$datare2ste,$datare3ste,$datare4ste,$datare5ste,$datare6ste)=split(/∥/,$_);
chomp($datare6ste);
if (($adminusertid eq $datare2ste) && ($datare4ste eq "no") && ($gh ne "gh")) { $datareallno++; }
if (($adminusertid eq $datare2ste) && ($datare4ste eq "yes") && ($gh ne "gh")) {
print FILE "$messtimenlisre∥$datare1ste∥$datare2ste∥$datare3ste∥no∥$datare5ste∥$datare6ste∥\n";
$gh="gh";
}
else {print FILE "$_";}

}
close (FILE);


$dataformattxt = "$userfortup/$adminusertid/rentaswelluserdataformat.txt"; #客戶出租租片資料暫存區
$peoa="$filehead$dataformattxt"; #檢查是否有客戶出租租片資料暫存區檔案存在並建立檔案
unless(-f $peoa){
open(TMP,">$peoa");
close(TMP);
chmod(0666,$peoa);
}

@usertyutvsfd=&readtxtfile($peoa,2);
@usertyutvsfd=sort @usertyutvsfd;
open (FILET, ">$peoa");
   foreach (@usertyutvsfd) {  #讀取資料庫資料並比對
    ($messtimenlisret,$datare1stet,$datare2stet,$datare3stet,$datare4stet,$datare5stet,$datare6stet,$datare7stet,$datare8stet,$datare9stet,$datare10stet,$datare11stet)=split(/∥/,$_);
chomp($datare11stet);
if (($scmesside eq $messtimenlisret) && ($datare4stet eq "no") && ($gh ne "gh")) { $datareallno++; }
if (($scmesside eq $messtimenlisret) && ($datare4stet eq "yes") && ($gh ne "gh")) {

$datatimest = time;
$datatimes = $datatimest - $datare5stet;
$datatimes = $datatimes / 86400;
$datatimes = $datatimes - 0.06;
$datatimes = sprintf "%.2f",$datatimes;
chop($datatimes);
chop($datatimes);
chop($datatimes);
$datare7stets = $datare7stet - 1;
$datatimes = $datatimes - $datare7stets;
if ($datatimes <= 0) { $datatimes=0; }
$datatimeschos = $datare9stet * $datatimes;

print FILET "$messtimenlisret∥$datare1stet∥$datare2stet∥$datare3stet∥no∥$datare5stet∥$datatimeschos∥$datare7stet∥$datatimes∥$datare9stet∥$datare10stet∥$datare11stet∥\n";
$gh="gh";
}

else {print FILET "$_";}

}
close (FILET);



if ($datareallno >= "2") { &errorjava("物品已設定歸還請勿再輸入歸還"); }










print <<EOFsssrtc;
<html>
<script language="JavaScript">
function admindataruallslu() {
document.forms[0].submit();
}
</script>

<head>
<STYLE TYPE="text/css">
<!--       
TD {        FONT-SIZE: 16px }
body     {scrollbar-arrow-color:#FFFFFF;scrollbar-base-color:#FFFFFF;scrollbar-face-color:#222222;scrollbar-highlight-color:#222222;scrollbar-shadow-color:#FFFFFF}
-->
</STYLE>
<meta http-equiv="Content-Language" content="zh-tw">
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
</head>

<body onload="admindataruallslu();" ONDRAGSTART="window.event.returnValue=false" ONCONTEXTMENU="window.event.returnValue=false" bgcolor="#000000" text="#FFFFFF" link="#0000FF" vlink="#FF00FF" alink="#00FF00" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<form method=post action=rentaswell.cgi?$userinfo target='rentaswell3'>
<input type=hidden name='main'  value='rentaswellscanadmin2'>
<input type=hidden name='adminusertid'  value='$adminusertid'>
</form>

</center>

</body>
</html>
EOFsssrtc









}

##########
sub errorjava { #錯誤函式庫
print "<html><head><title></title>\n";
print "<script Language='JavaScript'>\n";
print "function erorwe() {\n";
print "     alert('$_[0]');\n";
print "     return false;\n";
print " }\n";
print "erorwe();\n";
print "</script>\n";
print "<body bgcolor='#000000' text='#FFFFFF''>\n";
print "</head></html>\n";
exit 0;
}

給大家看一下這套軟體的截圖
01.jpg
02.jpg
發表於 2011-3-11 11:03:57 | 顯示全部樓層
咦.......不是只判斷到日期就好?
不知道time是傳回什麼,看起來是傳回從0時0分到現在時間所經過的秒數的樣子

譬如說,2011/03/11 上午10:53分借的片子,展延一天=86400秒
歸還的日期時間 應為 2011/03/12 上午10:53分之前,實際上要為2011/03/12 23時59分59秒之前
不能只判斷到日期?   算秒數會很複雜哩

要算的話應該也是可以啦,把借出時間,譬如說2011/03/11 上午10:53分
從2011/03/11 0 時起,秒數經過為653分=39180秒
另外存一個數值,此數值為86400-39180=47220
計算時就把借出時間(2011/03/11 10:53分) +47220秒 (2011/03/11 24時)
來跟歸還時間相減,計算有沒有超過86400秒(1天)

有人看得懂嗎?  我也看不懂我在說什麼了 n_144|
 樓主| 發表於 2011-3-11 11:45:47 | 顯示全部樓層
咦.......不是只判斷到日期就好?
不知道time是傳回什麼,看起來是傳回從0時0分到現在時間所經過的秒數的樣子 ...
conbawa 發表於 2011-3-11 11:03 AM http://bbs.pigoo.com/images/common/back.gif



哈哈~~~那個時間~~~就是電腦的時間碼拉....
至於是重哪一年開始的...我忘了...
要去電子計算機概論才知道了....
但那時間碼我可以確定的是~~以秒計算的
而且~~我沒記錯的話~~~有各指令~~可以完整計算出日期格式
那指令我忘了~~但我知道放在哪~~~會套用就好了....
有必要時~~~我可能要去改那一個數值來做比較~~~
這樣才能計算出正確的日期...
要不然~~每次都已那時間租
隔天超過那個時間還都變成超過1天了...
發表於 2011-3-11 12:40:47 | 顯示全部樓層
1970年1月1日到現在經過的秒數....應該是這個

其實租借時間應該也是丟進函數算出經過秒數
知道日期的話還是能算出租借日的23時59分59秒的秒數,壓24:00不知道接不接受
用那個時間去計算應該就沒問題了

不大幅改動的話,可以嘗試
86400-(租借日時間秒數/86400 的餘數) = A = 到當日24時的剩餘秒數

計算天數就用
(歸還時間秒數- 租借時秒數 - A ) / 86400

您那個0.06 應該是展延時間吧?

也可以用A來判定展延時間,譬如說 A < 43200 表示 中午12點過後借的
要多展延4小時的話,設定B=4*3600=14400

計算天數就用
(歸還時間秒數- 租借時秒數 - A - B ) / 86400 來計算
發表於 2011-3-11 12:57:26 | 顯示全部樓層
日期是以晚上12點為準~所以直接用幾年幾月幾號(還片)~去減幾年幾月幾號(租片)
發表於 2011-3-11 13:56:44 | 顯示全部樓層
回復 3# shunxing

哈哈!程式問題問hwj就對了,去年離職後,我N年前幫人寫的軟體遇到民國100的問題,我自己寫的軟體居然也請hwj幫忙解決,現在才想到,還欠hwj錢沒還.......
hwj忘記吧..........!
.
.
hwj忘記吧..........!
.
.
.
hwj忘記吧..........!
.
.
.
.
.hwj忘....
.
.
.
.
.
 樓主| 發表於 2011-3-11 14:14:25 | 顯示全部樓層
1970年1月1日到現在經過的秒數....應該是這個

其實租借時間應該也是丟進函數算出經過秒數
知道日期的話還 ...
conbawa 發表於 2011-3-11 12:40 PM http://bbs.pigoo.com/images/common/back.gif



   
我打算用整點時間下去計算晚上12點也就是一天的時間86400秒
扣除目前的已過時間秒....
來計算出晚上12點再來比對影片的時間..確定是不是過了晚上12點
才來判定超過期限...

日期是以晚上12點為準~所以直接用幾年幾月幾號(還片)~去減幾年幾月幾號(租片) ...
hwj 發表於 2011-3-11 12:57 PM http://bbs.pigoo.com/images/common/back.gif


我有打算這樣做~~
但是一動~~所有的程式全都要動...
有點麻煩..目前傾向部分修改即可~~~
發表於 2011-3-11 15:21:41 | 顯示全部樓層
我覺得以您現在的算法,再去弄成年月日真的會是大修  n_098|
應該還是算出到晚上12點剩餘的秒數來輔助相減是最快的方式
您目前用的秒數差方式計算其實還不錯,要加展延時間也很好克服

話說上次遇到老問題.....閏年的判斷,熊熊給他忘記是100年,400年整除要閏年還是不閏年
想說用偷雞摸狗的方式.....拿XP的萬年曆來翻,想說翻到2100年就知道了
赫然發現......XP的萬年曆只到2099年啊......超過就變成1980年  n_098|

所以說.....W大的百年蟲其實也不算什麼.....XP只能給你用到2099年   n_136|
 樓主| 發表於 2011-3-11 16:16:16 | 顯示全部樓層
我覺得以您現在的算法,再去弄成年月日真的會是大修  
應該還是算出到晚上12點剩餘的秒數來輔助相減 ...
conbawa 發表於 2011-3-11 03:21 PM http://bbs.pigoo.com/images/common/back.gif


我整各資料庫系統~~~全都是使用時間下去建立的.....
完全不會有衝突.....而且每個資料都個別創立一個檔案~~~
根本不怕資料庫損毀...只是備份的時候...會起笑....
好在都是系統自動壓縮備份....隔天只要將壓縮黨COPY另外儲存就可以了..
發表於 2011-3-11 21:38:43 | 顯示全部樓層
順新大真是厲害.不只會修硬的.連軟的也行真是讓小弟配服阿:sam24
發表於 2011-3-12 00:49:16 | 顯示全部樓層
讓大家看一下我這幾天在修改的重點...
雖然這軟體已經用了3個多月了
早就修改一些BUG了...
但有個地方美中 ...
shunxing 發表於 2011-3-11 10:04 AM http://bbs.pigoo.com/images/common/back.gif



    可以抓xp的系統時間 裡面就有 日期.... 以日期為準就行了...
再不行 最笨的方法 用DOS函數...
 樓主| 發表於 2011-3-12 07:04:38 | 顯示全部樓層
可以抓xp的系統時間 裡面就有 日期.... 以日期為準就行了...
再不行 最笨的方法 用DOS函數... ...
pchappy 發表於 2011-3-12 12:49 AM http://bbs.pigoo.com/images/common/back.gif



    這是在LINUX系統下運作的....
這套程式用PERL運行的.......
發表於 2011-3-12 14:47:02 | 顯示全部樓層
本帖最後由 pchappy 於 2011-3-12 02:52 PM 編輯
這是在LINUX系統下運作的....
這套程式用PERL運行的.......
shunxing 發表於 2011-3-12 07:04 AM http://bbs.pigoo.com/images/common/back.gif



    啊 小的弄錯了 以為是在win下玩的...小的惶恐...

如果是在只有用秒數的地方...
只要用除的 就可以得到日期... 可以拿來比較 2數的商... 就是日期 有沒有同一天了
你現在的算法應該是直接用 還片的"秒"去 - 租片時的"秒"...
可以先把2個 "秒" 先單獨除出"日" 再去減這個"日" 就是你要的了 ....
發表於 2011-3-12 14:54:09 | 顯示全部樓層
哈哈~~~那個時間~~~就是電腦的時間碼拉....
至於是重哪一年開始的...我忘了...
要去電子計算機概論才知 ...
shunxing 發表於 2011-3-11 11:45 AM http://bbs.pigoo.com/images/common/back.gif


應該是 1960 年以來旳秒數..

在 UNIX-Like 中大多數的語言都有用到..

所以也有很多時間相關轉換的函數..

PHP 和 Perl 關係真的很密切耶..

Shunxing 真是多才多藝.. XD..
 樓主| 發表於 2011-3-12 18:30:00 | 顯示全部樓層
應該是 1960 年以來旳秒數..

在 UNIX-Like 中大多數的語言都有用到..

所以也有很多時間相關轉換的函 ...
cremaker 發表於 2011-3-12 02:54 PM http://bbs.pigoo.com/images/common/back.gif



   說到這個.....逃兵才強......別小看他平時發言都在中傷W大...
他玩的東西與層次都是比我們玩的還要更難的東西...
玩的東西也比我還要多~~~
 樓主| 發表於 2011-3-12 18:31:15 | 顯示全部樓層
啊 小的弄錯了 以為是在win下玩的...小的惶恐...

如果是在只有用秒數的地方...
只要用除的 就可以 ...
pchappy 發表於 2011-3-12 02:47 PM http://bbs.pigoo.com/images/common/back.gif


我想了很多種方式了~~~
還沒想到完美方案~~~
等我想好了~~再把指令放出來
發表於 2011-3-12 20:30:14 | 顯示全部樓層
所以只有逃兵大能打W大的槍啊   n_112|
發表於 2011-3-12 20:55:10 | 顯示全部樓層
所以只有逃兵大能打W大的槍啊
conbawa 發表於 2011-3-12 08:30 PM http://bbs.pigoo.com/images/common/back.gif



    但是 要打 shunxing 大的槍 是大家都打得到的 光錯字就打到他滿頭包囉..ccc
發表於 2011-3-12 20:58:13 | 顯示全部樓層
我想了很多種方式了~~~
還沒想到完美方案~~~
等我想好了~~再把指令放出來 ...
shunxing 發表於 2011-3-12 06:31 PM http://bbs.pigoo.com/images/common/back.gif



   小的只學過 basic 6502 8088 cobol clipper(這勉強算半個語言好了) 你上面列的語法小的看不懂 幫不了你 但是算法是一樣的.. 你應該有頭緒了啦 逃兵大看到這種小兒科 應該直接跳過去了吧...
 樓主| 發表於 2011-3-12 21:24:41 | 顯示全部樓層
真的是倒楣到底了~~~

才再說這程式~~~我加店面那台伺服器硬碟又掛了....
正在搶修中~~~~
 樓主| 發表於 2011-3-13 08:57:43 | 顯示全部樓層
終於將時間的問題找出解決方案了......
不過也差點整死我了~~
早就快忘光的程式碼..這幾天一直在看程式的流程..
看到頭都快爆了.....
好險~~這些流程當初都我自己定義的~~要不然還真的會找不到順序..

#######################
原本的還片時間計算方式.........

$datatimest = time;
$datatimes = $datatimest - $datare5stet;
$datatimes = $datatimes / 86400;
$datatimes = $datatimes - 0.06;
$datatimes = sprintf "%.2f",$datatimes;
chop($datatimes);
chop($datatimes);
chop($datatimes);
$datare7stets = $datare7stet - 1;
$datatimes = $datatimes - $datare7stets;
if ($datatimes <= 0) { $datatimes=0; }
$datatimeschos = $datare9stet * $datatimes;

#############################

改過之後的時間計算方式~~~~

$datatimest = time; #目前時間
$datatimes = $datatimest - $datare5stet; #目前時間扣除先前租片時間
$datatimes = $datatimes / 86400; #剩餘時間除以1天取得租片時的正確時間
$datatimes = sprintf "%.2f",$datatimes; #取小數點2位數
chop($datatimes);
chop($datatimes);
chop($datatimes); #取整數

$datare7stets = $datare7stet - 1; #不知道為何要減1但還是得減1..不減1會超過隔天還不算超過
$datatimes = $datatimes - $datare7stets; #將取得的天數扣除可租天數
if ($datatimes >= 1) {
if ($hourn <= 23) {$datatimes = $datatimes - 1;} #當天數大於1且在當天的11點前不算超過
}
if ($datatimes <= 0) { $datatimes=0; }
$datatimeschos = $datare9stet * $datatimes;
發表於 2011-3-13 10:37:56 | 顯示全部樓層
終於將時間的問題找出解決方案了......
不過也差點整死我了~~
早就快忘光的程式碼..這幾天一直在看程式的 ...
shunxing 發表於 2011-3-13 08:57 AM http://bbs.pigoo.com/images/common/back.gif



    順興大今天真早起 這麼早就改好發上來@@
寫程式不可以有 "不知道為何要減1但還是得減1"這種事 一定要弄清楚真正的原因 否則 bugs...會抓不完
你這個我不會看 所以...= =
 樓主| 發表於 2011-3-13 11:27:04 | 顯示全部樓層
順興大今天真早起 這麼早就改好發上來@@
寫程式不可以有 "不知道為何要減1但還是得減1"這種事 一定 ...
pchappy 發表於 2011-3-13 10:37 AM http://bbs.pigoo.com/images/common/back.gif



   那個減1...好像是時間差.....
畢竟是以秒計算..而且天數的扣除方式不同...
才會多了減1.....

說真的~~~當初為了這部分~~~
我光想~~~就差點想破頭...
若沒有記錯的話...當初是有這BUG的問題..
才多了-1.....畢竟是以秒計算的.......

之前HWJ說的以天計算.....我以前也有想過~~~
但這樣做會影響整各系統的內部設定與資料庫的格式變化

程式的流程~~~說真的~~PERL很簡單.....
他的程式運作幾乎都是字串處理...

只要知道流程都很好寫~~~~比學C語言簡單好幾百倍....
 樓主| 發表於 2011-3-13 11:32:57 | 顯示全部樓層
日期是以晚上12點為準~所以直接用幾年幾月幾號(還片)~去減幾年幾月幾號(租片) ...
hwj 發表於 2011-3-11 12:57 PM http://bbs.pigoo.com/images/common/back.gif


這方式我以前有想過....
但考慮到.....每月有30日與31日....還有28日的....
這種算法肯定行不通......
而且~~有的東西~~客戶放了1年以上忘記還的也有...
發表於 2011-3-13 19:55:38 | 顯示全部樓層
呃.....順興大你講得很清楚,我們看得很模糊  n_118|
因為啊.....根本不知道你那個$datare7stets 是怎麼來的,還是我眼花沒看到?

其實你知道怎麼去丟日期時間換成秒數了
應該還是有函式可以丟秒數進去換算日期時間
不用去管那個月是31,30或是28,29天,那個函式會去處理
發表於 2011-3-13 20:36:32 | 顯示全部樓層
一堆code........:sam09

還有變數命名.....如果再加上多一些註解就會比較不會頭暈了(我自己也很少寫註解。n_065|)
發表於 2011-3-13 21:13:18 | 顯示全部樓層
呃.....順興大你講得很清楚,我們看得很模糊  
因為啊.....根本不知道你那個$datare7stets 是怎麼來 ...
conbawa 發表於 2011-3-13 07:55 PM http://bbs.pigoo.com/images/common/back.gif



    順興大的日曆...現在每個月應該是只有28天了吧...ccccc
發表於 2011-3-13 21:16:00 | 顯示全部樓層
一堆code........

還有變數命名.....如果再加上多一些註解就會比較不會頭暈了(我自己也很少寫註解 ...
s10274chen 發表於 2011-3-13 08:36 PM http://bbs.pigoo.com/images/common/back.gif



    以前有在寫程式時 我會以一個小段或一個function.. 留一些簡單的助憶文字...幫助我想起那是做什麼用的 這樣久了 才不會忘得太誇張 有時別的程式要用到 還可以把以前做過的copy過去用 哈
前題是 要夠結構化 才可以這麼玩..
 樓主| 發表於 2011-3-13 22:07:31 | 顯示全部樓層
呃.....順興大你講得很清楚,我們看得很模糊  
因為啊.....根本不知道你那個$datare7stets 是怎麼來 ...
conbawa 發表於 2011-3-13 07:55 PM http://bbs.pigoo.com/images/common/back.gif



    是阿~~$datare7stets 這個...其實是可租用天數...這是固定的......

至於PERL的時間變數....只能做到時間轉換...
你要拿那個產生出來的時間變數...
試問...你如何2011年3月3日來扣除2011年1月30日的時間出來?
而且...客戶要是把影片放了4百多天..如何計算出正確的天數..
我為了找出這函庫...我找了2年多吧(從我接觸到PERL的數年後)
就是找不到相關的資料...為一理解到的...就是時間採用秒數計算的...
這還是從別人的程式中發現到的....
也是使用PERL來開發CGI常用的指令...
($secn,$minn,$hourn,$dayn,$monn,$yearn,$weekn,$yeardayn,$isdst) = localtime(time);

當時就是解析到這段..一直在研究是怎麼寫出來的....
才發現到time的用途...
畢竟這邊的功能..書籍是沒有說明的...只能靠自己去連續測試它的用途...
將他的用途找出來....
發表於 2011-3-13 22:25:50 | 顯示全部樓層
應該會有日期加減的函式庫可以用~
不需擔心28~29~30~31天的問題

例如
($sec, $min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)  = localtime(time);
print "Content-type:text/html\n\n";
print "秒: $sec\n";
print "分: $min\n";
print "時: $hour\n";
print "一個月的第幾天: $mday\n";
print "月: $mon 範圍是 0-11,而一月為 0\n";
print "距離 1900 年的第幾年: $year\n";
print "一周內的第幾天: $wday  範圍是 0-6,而星期日為 0\n";
print "一年內的第幾天: $yday\n";
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-24 01:30 PM , Processed in 0.377090 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.