날짜의 다음 날짜를 찾아야합니다. 나는 $의 entered_date 변수에 저장된 날짜의 다음 날짜를 찾으려면 위의 코드에서 perl을 사용하여 주어진 날짜의 다음 날짜를 어떻게 찾을 수 있습니까?
use strict;
my $entered_date="2011-11-30";
... 솔루션 .... 미리
감사합니다 ...
을 공유하세요날짜의 다음 날짜를 찾아야합니다. 나는 $의 entered_date 변수에 저장된 날짜의 다음 날짜를 찾으려면 위의 코드에서 perl을 사용하여 주어진 날짜의 다음 날짜를 어떻게 찾을 수 있습니까?
use strict;
my $entered_date="2011-11-30";
... 솔루션 .... 미리
감사합니다 ...
을 공유하세요perl -MDate::Calc -E ' use Date::Calc qw(Add_Delta_Days);say join "-", Add_Delta_Days(2011,11,30,1);'
2011-12-1
(매우 안전하지 않음)
use Date::Calc qw(Add_Delta_Days);
my $entered_date = "2011-12-31";
print join "-", Add_Delta_Days(split(/-/,$entered_date),1);'
2012년 1월 1일
use Time::Piece;
use Time::Seconds;
my $date = Time::Piece->strptime($entered_date, "%Y-%m-%d");
$date += ONE_DAY;
return $date->strftime("%Y-%m-%d");
[편집 : Wintendo와 호환되도록 %F
에서 %Y-%m-%d
으로 변경되었습니다. 감사 @bvr] 스크립트에서
안녕하세요, 저는 Windows OS에서 작업하고 있습니다. 위의 코드는 값을 반환하지 않습니다. $ dates_date = "2011-11-30"에 대한 날짜 형식을 변경해야합니까 – Madhan
코드가 정확합니다. http://ideone.com/kiioD –
(분명히 Time :: Piece가 필요하지만 문제가 아니어야하는 Perl> = 5.10의 핵심 모듈이기 때문에) –
use Date::Simple;
my $date = Date::Simple->new($entered_date);
$date++;
print $date;
() 새로운 under constructors
을 설명 이해할 형식아마도 이것이 표준 Perl은 아니지만 타사 CPAN 모듈을 사용하여이를 사용하려고하는 모든 코드에 추가 종속성을 도입해야 함을 언급해야합니다. – tchrist
use strict;
use DateTime::Format::Flexible;
my $entered_date = "2011-11-30";
my $dt = DateTime::Format::Flexible->parse_datetime($entered_date);
print $dt->add(days => 1)->ymd;
왜 스크립트가 안전하지 않다고합니까? – Borodin
@Borodin - 입력 유효성 검사, 엄격한 경고, 경고 없음, split() ...의 호출에서 반환 된 내용을 확인하지 않습니다. 그냥 sayin '입니다. – knb
아, 그래, 내가 추측 한 한 줄짜리 라이너보다 더 안전하지 않아. – Borodin