Zastanawiam się, czy istnieje wbudowana funkcja Perla, która dostosowuje datę, jeśli bierzesz z niej miesiąc. Na przykład. jeśli data jest 31, to dostosuje się do końca poprzedniego miesiąca, jeśli nie ma 31 dni.Jak wrócić miesiąc w Perlu biorąc pod uwagę różne dni w miesiącu?
Po prostu zmienię go na 30. Łatwo, gdyby nie były to miesiące z 31 dniami obok siebie (grudzień/styczeń, lipiec/sierpień) i luty. Chcę tylko zapisać datę w określonym czasie poza bieżącą datą, np.
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);
mogę poradzić sobie z instancji lutego, ponieważ odnosi się tylko do lata, ale jeśli ta została podjęta w dniu 31 grudnia 2012 roku, a następnie zabierając miesiąc oznaczałby 31. lis 2012, co oczywiście nie istnieje. Myślałem, że chciałbym zapytać, czy istnieje funkcja przed komplikowania rzeczy dla siebie ... dzięki :)
[DateTime] (https://metacpan.org/module/DateTime) Może szukasz tego modułu? (ma datę "matematyka") – gaussblurinc
Obie odpowiedzi poniżej dobre! Date Time wygląda na naprawdę użyteczną opcję, ale ponieważ chcę ją wykorzystać dla niewielkiej części mojego kodu, myślę, że mogę po prostu zanurzyć się i zrobić dla niej kilka klauzul. Długo się kręci, ale to pomoże mi się uczyć ... to jest mój pierwszy dzień korzystania z Perla: P Dziękuję za pomoc! – dgBP