2013-05-06 4 views
1

캘린더를 세로 형식으로 표시해야합니다. 어떻게이 포맷을 얻을 수 있습니까? 나는 샘플 펄 스크립트를 시도했다.캘린더를 세로 형식으로 표시하는 방법은 무엇입니까?

스크립트

use strict; 
    use Calendar::Simple; 

    my @months = qw(January February March April May June July August 
        September October November December); 

    my $mon = shift; 
    my $yr = shift; 

    my @month = calendar($mon, $yr); 

    print "\n$months[$mon -1] $yr\n\n"; 
    print "Su Mo Tu We Th Fr Sa\n"; 
    foreach (@month) { 
    print map { $_ ? sprintf "%2d ", $_ : ' ' } @$_; 
    print "\n"; 
    } 

이것은 가로 형식 정상 달력으로 실행될 수있다; 어떻게 같은 출력을 필요로 ... 세로 형식으로

을 변경할 수 있습니다, 당신이 단지 공백 앞에 삽입 평일 싶은 생각 나는이 작업을 수행하는 방법

sun 1 5 6 
mon 2 3 
wed ... 
thu ... 
fri ... 
stu ... 

....

답변

1

UPDATE : MONTH2 @ 추가

# ... 
my @month = calendar($mon, $yr); 
my @month2 = map { 
    my $v=$_; 
    [ map $_->[$v], @month ] 
} 0..6; 

my @wd = qw(Su Mo Tu We Th Fr Sa); 
for my $i (0 .. $#month2) { 

    my $el = $month2[$i]; 
    print $wd[$i], map { 
    $_ ? sprintf("%2d ", $_) : " "; 
    } 
    @$el; 
    print "\n"; 
} 
+0

@ 월 변환 아니, – user1811486

+0

가했습니다 제대로 작동하지 않던 문제 해결 좋은 작품은 당신에게 mpapec .... 감사합니다. – user1811486

관련 문제