פרק 9: המילניום - ניהול זמן ותאריךהתעמלות עם לוח שנהראינו בחלקים הקודמים שבעזרת שימוש בזמן שניות תקופתי, חיבור וחיסור של תקופת זמן הופכות לפעולה פשוטה ביותר. למרות זאת, ישנם מקרים בהם עדיין יותר נוח לבטא זמן בשיטות שונות מאשר שניות, ו Date::Manip מאפשרת לחשב זמנים בעזרת הגדרות ידידותיות יותר למשתמש, וזאת על ידי פונקצית ה DateCalc&. נניח שתרצו להוסיף 12 שעות לזמן הנוכחי: $time=&DateCalc("today","+12 hours"); print scalar localtime(&UnixDate($time,"%s")); או לחסר 12 שעות מהזמן הנוכחי: $time=&DateCalc("today","-12 hours"); print scalar localtime(&UnixDate($time,"%s")); למעשה ניתן אף לכתוב "12- hours" אף כ "12 hours ago" (לפני 12 שעות), ו Date::Manip עדיין תבין זאת, אולם חייבים לציין שזהי התחכמות מיותרת! מובן שניתן להוסיף או להחסיר זמנים מורכבים אחרים, לדוגמא: $time=&DateCalc("today","+3 days 12 hours 30 minutes"); print scalar localtime(&UnixDate($time,"%s")); כמו כן Date::Manip מודעת למוסכמות אנושיות מסוימות, כגון "ימי עבודה", או ימים הנופלים בין שני לשישי (כך זה ברוב העולם). לפיכך, אתם יכולים, כמו שחברות אוהבות לעשות, לחשב "3 ימי עבודה החל ממחר": $time=&DateCalc("tomorrow","+3 business days"); print scalar localtime(&UnixDate($time,"%s")); טריק שימושי נוסף הוא ידיעת ההפרש בין שתי זמנים שונים. אתם יכולים לעשות זאת בקלות בעזרת זמן שניות תקופתי, אולם אז עדיין תישארו עם שניות, שיכריחו אתכם להפוך זאת לשעות, דקות ושניות, וכו'. גם כאן Date::Manip יכולה לסייע. לדוגמא הבא נבדוק כמה זמן עבר בין Halloween לבין Christmas של 1999? $timeDelta=&DateCalc(&ParseDate("31 October 1999"), &ParseDate("December 25, 1999"),\$err,1); print $timeDelta; הפלט, בפורמט של YY:MM:WK:DD:HH:MM:SS (שניות:דקות:שעות:ימים:שבועות:חודשים:שנים) +0:1:3:4:0:0:0 ומה למדנו? למדנו שעבר חודש 1, 3 שבועות, ו 4 ימים בין Halloween ל Christmas. מתערבים שלא ידעתם זאת לפני זה. Date::Manip
התעמלות עם
|