永发信息网

perl 字符串转换为日期

答案:2  悬赏:50  手机版
解决时间 2021-03-23 09:16
现在有这样的需求:命令行参数接收如‘20140225’这样的字符串参数,我怎样取出它的前一天、后一天?localtime能实现吗?
最佳答案
用Date::Calc包可以实现。
 方法清单:
      Days_in_Year
      Days_in_Month
      Weeks_in_Year
      leap_year
      check_date
      check_time
      check_business_date
      Day_of_Year
      Date_to_Days
      Day_of_Week
      Week_Number
      Week_of_Year
      Monday_of_Week
      Nth_Weekday_of_Month_Year
      Standard_to_Business
      Business_to_Standard
      Delta_Days
      Delta_DHMS
      Delta_YMD
      Delta_YMDHMS
      N_Delta_YMD
      N_Delta_YMDHMS
      Normalize_DHMS
      Add_Delta_Days
      Add_Delta_DHMS
      Add_Delta_YM
      Add_Delta_YMD
      Add_Delta_YMDHMS
      Add_N_Delta_YMD
      Add_N_Delta_YMDHMS
      System_Clock
      Today
      Now
      Today_and_Now
      This_Year
      Gmtime
      Localtime
      Mktime
      Timezone
      Date_to_Time
      Time_to_Date
      Easter_Sunday
      Decode_Month
      Decode_Day_of_Week
      Decode_Language
      Decode_Date_EU
      Decode_Date_US
      Fixed_Window
      Moving_Window
      Compress
      Uncompress
      check_compressed
      Compressed_to_Text
      Date_to_Text
      Date_to_Text_Long
      English_Ordinal
      Calendar
      Month_to_Text
      Day_of_Week_to_Text
      Day_of_Week_Abbreviation
      Language_to_Text
      Language
      Languages
      Decode_Date_EU2
      Decode_Date_US2
      Parse_Date
      ISO_LC
      ISO_UC



 其中,
Add_Delta_Days
    =>

 ($year,$month,$day) =
     Add_Delta_Days($year,$month,$day,  $Dd);
这个方法应该能够满足要求
全部回答
你的字符串是如何存储的? \ 这个符号,在字符串中应该是转义的\\表示;除非你用的是''。下面的代码用的是字符串替换法: #my $str = "c:\\program files\\installshield installation information\\{bf06680-3bbafee5524c}\\abc.pl"; my $str = 'c:\program files\installshield installation information\{bf06680-3bbafee5524c}\abc.pl'; $str =~ s{.*\\}{}; $str =~ s{\.[^.]+$}{}; print "$str\n";结果: abc" "字符串中如果没用转义,会报错,但依然有输出正确的结果。 如果要得到自身的名称,不同的perl系统,结果不同。 windows下activeperl $0 带全路径,而strawberry则没有。 你可以用中性的方法: use cwd 'abs_path'; print abs_path($0); 嗯,我没理解你上面的描述,你不要$0的路径,只要文件名,如下: my $str2 = abs_path($0); $str2 =~ s{.*\\}{}; print "$str2\n"你如果用activeperl,可以直接试试: my $str2 = $0; $str2 =~ s{.*\\}{}; print "$str2\n"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
热气球是哪个国家发明的?
历史上有趣的对联大全
IDO美甲这个地址在什么地方,我要处理点事
最差的快递公司最恶心的快递公司就是EMS,到
单选题新航路开辟以后,首先进行殖民扩张的国
旋进旋涡流量计有什么优点 使用中要注意什么
华为手机怎么重新启动,华为手机如何重启手机
单选题TomorrowisSunday.Theboys________ki
韶关到于都的班车在韶关发车最晚的一趟几点的
红叶木门地址在什么地方,想过去办事
单选题一只蜜蜂和一辆汽车在平直公路上以同样
胃潮是什么原因,胃账,吃一点东西就账,是什么
求对联:斜窗晓月勾心事下联
猜成语见开头的
新世纪商城(朔州应县)地址在什么地方,想过去
推荐资讯
两个数的差是165,如果被减数增加72,减数减
新人求助关于火红眼罗伊
墙刮腻子多少钱,腻子胶粉多少钱一吨
月经期间不减肥随便吃会长胖么
在群里怎么改网名,如何修改在Q群里的名字?
载人四轴用的是什么牌子的飞控板 电机
95年5月5日生日阴历是多少
闺蜜小时代之剩女台词,电影《小时代2》有哪些
—Tom has won the 100-meter race.—! He ne
猪头肉一吃癌症会复发吗
大学办的银行卡和普通的有什么区别?
89版封神榜琵琶精是谁演的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?