Tôi đã tự hỏi nếu có một chức năng Perl trong xây dựng mà điều chỉnh ngày nếu bạn mất một tháng từ nó. Ví dụ. nếu ngày là ngày 31, nó sẽ điều chỉnh để kết thúc tháng trước nếu nó không có 31 ngày.Làm thế nào để quay trở lại tháng trong Perl lấy tài khoản của các ngày khác nhau trong tháng?
Tôi chỉ thay đổi nó thành 30 dễ dàng nếu không phải trong những tháng có 31 ngày cạnh nhau (tháng 12/tháng 1, tháng 7/tháng 8) và tháng 2. Tôi chỉ muốn lưu trữ ngày một khoảng thời gian nhất định từ ngày hiện tại, ví dụ:
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$current_date = join("-", (1900+$year), ($mon+1), $mday);
$one_month_ago = join("-", (1900+$year), ($mon), $mday);
$one_year_ago = join("-", (1899+$year), ($mon+1), $mday);
tôi có thể đối phó với các trường hợp tháng hai như nó chỉ áp dụng cho năm nay, nhưng nếu điều này được chụp vào ngày 31 Tháng 12 năm 2012 sau đó lấy đi một tháng sẽ có nghĩa là 31 tháng 11 năm 2012, trong đó tất nhiên không tồn tại. Tôi nghĩ rằng tôi sẽ hỏi nếu có một chức năng trước khi làm phức tạp những điều cho bản thân mình ... cảm ơn :)
[Ngày giờ] (https://metacpan.org/module/DateTime) có thể bạn tìm kiếm mô-đun này? (nó có ngày 'toán học) – gaussblurinc
Cả hai câu trả lời dưới đây tốt! Ngày giờ trông giống như một lựa chọn thực sự hữu ích, nhưng khi tôi muốn sử dụng nó cho một phần nhỏ của mã của tôi, tôi nghĩ rằng tôi có thể chỉ cần lao vào và thực hiện một loạt các mệnh đề cho nó. Dài gió, nhưng nó sẽ giúp tôi tìm hiểu ... đây là ngày đầu tiên của tôi bằng cách sử dụng Perl: P Cảm ơn sự giúp đỡ của bạn! – dgBP