2010-10-17 16 views
7

पर्ल में दिनांक अंकगणित करने का अनुशंसित तरीका क्या है?पर्ल में दिनांक अंकगणित करने का अनुशंसित तरीका क्या है?

उदाहरण है कि मैं आज से तारीख पता करने के लिए तीन दिन पहले चाहते हैं के लिए कहते हैं (जहां today = 2010-10-17 और today - 3 days = 2010-10-13)। पर्ल में आप ऐसा कैसे करेंगे?

उत्तर

11

आप दिनांक समय और दिनांक समय :: अवधि

http://search.cpan.org/dist/DateTime/lib/DateTime/Duration.pm

का उपयोग या यूनिक्स टाइमस्टैम्प के साथ काम कर सकते हैं:

my $now = time(); 
my $threeDaysAgo = $now - 3 * 86400; 
my ($day, $mon, $year) = (localtime($threeDaysAgo))[3, 4, 5]; 
printf("Three days ago was %04d-%02d-%02d", $year+1900, $mon+1, $day); 
+3

तुम भी दिनांक समय के साथ परेशान करने के लिए की जरूरत नहीं है :: तारीख हेरफेर, जैसे की एक बहुत कुछ के लिए ही अवधि '$ तीन_days_ago = डेटटाइम-> अब() -> घटाएं (दिन => 3)' – plusplus

+0

डेटटाइम का उपयोग करके देखभाल करने वाली एकमात्र चीज, आपके द्वारा तत्काल दिनांकित दिनांक समय की संख्या को कम करना है (आवंटित करने में काफी समय लग सकता है और नष्ट)। जितनी बार संभव हो पुन: उपयोग करें। –

5

कई, कई अलग अलग तारीख और समय हेरफेर मॉड्यूल उपलब्ध हैं।

इनमें शामिल हैं:

इन सभी अच्छी तरह के बारे में सोचा जाता है। इसके अलावा कई अन्य हैं। बहुत कुछ गणित के प्रकार पर निर्भर करता है जिसे आप करना चाहते हैं। डेटटाइम शायद सबसे कठोर है, लेकिन तिथि :: कैल्क और डेट :: मैनिप को आपके इच्छित काम के लिए संभालना आसान हो सकता है।

0

यह सबसे कार्यक्षमता के साथ अब तक मॉड्यूल है कि मैं का सामना करना पड़ा द्वारा होता है: Date::Manip

संबंधित मुद्दे

 संबंधित मुद्दे