#!/usr/bin/perl
use DateTime;
$a = DateTime->new(year=>1952,month=>10,day=>21);
$b = DateTime->new(year=>2015,month=>10,day=>31);
$dif = $b-$a;
print $dif->years() ." ". $dif->months() ." ". $dif->days();
# result: 63 0 3
Trường hợp nhận được 3 ngày từ đâu? Kỳ vọng của tôi là 63 0 10.Tại sao toán perl DateTime này tạo ra kết quả không mong muốn?
#!/usr/bin/perl
use DateTime;
$a = DateTime->new(year=>1952,month=>11,day=>1);
$b = DateTime->new(year=>2015,month=>10,day=>31);
$dif = $b-$a;
print $dif->years() ." ". $dif->months() ." ". $dif->days();
# result 62 11 2
Kỳ vọng của tôi cho điều này là 62 11 31 hoặc hơn.
Tôi đang cố gắng thực hiện một số ngày sinh cơ bản để tính toán độ tuổi. Tháng và năm dường như làm việc như tôi mong đợi nhưng ngày dường như không thể đoán trước. Tôi đã đọc tài liệu CPAN nhưng tôi vẫn không hiểu.
Lưu ý tắt chủ đề: tốt hơn là không nên sử dụng biến $ a và $ b, cuz chúng đặc biệt trong perl – red0ct