URN Logo
UNIX Resources » Linux » China Linux Forum » Perl 编 程 » 4 » 如何得到系统时间转化为参数?
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
如何得到系统时间转化为参数?
如何得到系统时间转化为参数? - swjojo [2004-08-29 23:32 | 520 byte(s)]
 
 
Re: 如何得到系统时间转化为参数? - swjojo [2004-08-30 01:02 | 821 byte(s)]
 
 
 
Re: 如何得到系统时间转化为参数? - swjojo [2004-08-31 01:23 | 841 byte(s)]
 
Re: 如何得到系统时间转化为参数? - swjojo [2004-08-30 17:46 | 540 byte(s)]
 
 
Re: 如何得到系统时间转化为参数? - swjojo [2004-08-31 00:26 | 287 byte(s)]
 
Re: 如何得到系统时间转化为参数? - swjojo [2004-08-30 17:36 | 57 byte(s)]
 
Subject: 如何得到系统时间转化为参数?
Author: swjojo    Posted: 2004-08-29 23:32    Length: 520 byte(s)
[Original] [Print] [Top]
我是新人,因为要玩cgi的webgame才刚接触perl不久,所以问的问题可能有些猪头,请大家多多包涵。

问题是这样的,我想写个.pl文件,用来得到当前系统的日期时间,然后转换成参数来使用。

我自己想了下面的这个方法。
&TIME_DATA;
if($day = 7){$town_day = 0;
}elsif($day = 14){$town_day = 0;
}elsif($day = 21){$town_day = 0;
}elsif($day = 29){$town_day = 0;
}else{$town_day = 1;}

但是不可行,不知道有没有什么其它的方法?
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: redcandle    Posted: 2004-08-30 00:47    Length: 32 byte(s)
[Original] [Print] [Top]
把你的要求写出来.要实现什么功能?
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: swjojo    Posted: 2004-08-30 01:02    Length: 821 byte(s)
[Original] [Print] [Top]
我要实现,在规定的时间日期才能运行程序。

例如:这个文件只能在每个月7号,14号,21号,28号的 9点 至 21点才可以打开访问。

要怎么写? 我试过这样写
&TIME_DATA;
if($day = 7){$town_day = 1;
}elsif($day = 14){$town_day = 1;
}elsif($day = 21){$town_day = 1;
}elsif($day = 28){$town_day = 1;
}else{$town_day= 0;}
if($time_day = 0){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

&TIME_DATA;
if($hour>=9 && $hour<= 21){$time_hour = 1;
}else{$time_hour = 0;}
if($time_hour = 0){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

没成功...
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: redcandle    Posted: 2004-08-30 01:26    Length: 999 byte(s)
[Original] [Print] [Top]

#!/usr/bin/perl

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$day=$mday;

print "day $day hour $hour ";

if($day == 7){$town_day = 1;
}elsif($day == 14){$town_day = 1;
}elsif($day == 21){$town_day = 1;
}elsif($day == 28){$town_day = 1;
}else{$town_day= 0;}
if($time_day ==
0){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

if($hour>=9 && $hour<= 21){$time_hour = 1;
}else{$time_hour = 0;}
if($time_hour ==
0){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

sub B_ERR{
print shift;
print " ";
}


没有注意你的time打成town了. 拜托认真一点好吗?留着你自己改吧.呵呵.睡觉了
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: redcandle    Posted: 2004-08-30 01:42    Length: 809 byte(s)
[Original] [Print] [Top]

如果你不介意我对你的程序大动干戈的话,我想你可以试试这段代码:
#!/usr/bin/perl

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$day=$mday;

print "day $day hour $hour ";

$time_day=0;
if(!($day % 7)){$time_day = 1;}
if(!$time_day){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

$time_hour=0;
if($hour>=9 && $hour<= 21){$time_hour = 1;}
if(!$time_hour){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

sub B_ERR{
print shift;
print " ";
}
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: swjojo    Posted: 2004-08-30 17:36    Length: 57 byte(s)
[Original] [Print] [Top]
谢谢 redcandle 的热心帮助,我今晚回去就试一下。 谢谢 :)
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: swjojo    Posted: 2004-08-30 17:46    Length: 540 byte(s)
[Original] [Print] [Top]
反正还有时间,就再请教一下redcandle兄。

如果我是要限制.pl文件内的某段代码在规定时间内才可以执行,而其它代码段可以随时执行呢?

也是这样写么?

例如所写的.pl是被.cgi来调用的。不允许它独立运行。

在这个.pl文件的开头就不写 #!/usr/bin/perl 然后在这个文件里面,有一段代码是在规定时间内

才可以通过.cgi调用执行的。而里面其它的代码随时都可以被调用执行。

[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: redcandle    Posted: 2004-08-31 00:02    Length: 367 byte(s)
[Original] [Print] [Top]
将需要在特定时间段执行的代码另存为.pl文件

然后在主程序中,判断时间的代码中间加上这样一句:(假设你保存的文件叫foo.pl)

require foo.pl

require的作用是把foo.pl中的代码读入到当前位置来执行.

这种做法是不提倡的,因为如果在foo.pl中有错误的话,主程序在调用foo.pl的时候就会死掉.也有可能出现变量的交叉问题.
[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: swjojo    Posted: 2004-08-31 00:26    Length: 287 byte(s)
[Original] [Print] [Top]
通过.pl文件再调用另一个.pl文件?

我上面的意思是,已经在一个cgi文件里面调用这个.pl文件了。

这个.pl文件里面有许多代码段。我要限制其中的一段代码只能在规定时间才能运行。

如果要做到这样,我是要再另外写一个.pl文件么?

[Original] [Print] [Top]
Subject: Re: 如何得到系统时间转化为参数?
Author: swjojo    Posted: 2004-08-31 01:23    Length: 841 byte(s)
[Original] [Print] [Top]
经过调试, redcandle兄,你帮我优化的代码能顺利使用.谢谢了. 能遇到你,真是太好了.
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$day=$mday;

print "day $day hour $hour ";

$time_day=0;
if(!($day % 7)){$time_day = 1;}
if(!$time_day){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

$time_hour=0;
if($hour>=9 && $hour<= 21){$time_hour = 1;}
if(!$time_hour){&B_ERR("该文件可运行时间为每个月7号14号21号28号的9点至21点。");}

sub B_ERR{
print shift;
print " ";
}
[Original] [Print] [Top]
« Previous thread
这行perl5代码什么意思
Perl 编 程
4
Next thread »
perl书籍下载(不断增加) *DELETED*
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 04:09:01, cost 0.052978992462158 ms.