2014-10-07 74 views
0

我想分割一個月到4周使用perl.Say爲例如。我給出的開始日期和結束日期的輸入。 開始日期-09/01/2014 結束日期-09/30/2014鑑於一個月perl應該拆分爲幾周

perl應該將日期範圍分成4個不同的星期。您對我如何繼續這一點有任何想法。

在此先感謝..

回答

3

4周持續28天。你已經在30天的時間內爲你的問題作了準備。

假設你只是想一個星期代表星期天 - 星期六,然後使用Time::Piece下面的代碼會爲您提供幫助:

use strict; 
use warnings; 

use Time::Piece; 
use Time::Seconds; 

my $start = '09/01/2014'; 
my $end = '09/30/2014'; 
my $fmt = '%m/%d/%Y'; 

# Normalized to Noon to avoid DST 
my $week_start = Time::Piece->strptime($start, $fmt) + 12 * ONE_HOUR; 
my $month_end = Time::Piece->strptime($end, $fmt); 

while (1) { 
    print $week_start->strftime($fmt), ' - '; 

    my $week_end = $week_start + ONE_DAY * (6 - $week_start->day_of_week); 

    if ($week_end > $month_end) { 
     print $end, "\n"; 
     last; 
    } 

    # Print End of Week and begin cycle for next week 
    print $week_end->strftime($fmt), "\n"; 
    $week_start = $week_end + ONE_DAY; 
} 

輸出:

09/01/2014 - 09/06/2014 
09/07/2014 - 09/13/2014 
09/14/2014 - 09/20/2014 
09/21/2014 - 09/27/2014 
09/28/2014 - 09/30/2014 
+0

謝謝你這麼多米勒的答案。 – javalearner 2014-10-08 19:03:46