ठीक है, यदि पर्ल को स्क्रिप्ट के हिस्से के रूप में गिना जाता है, तो पर्ल में जवाब विकसित करें। अगला सवाल यह है कि - एक व्यापार दिवस क्या परिभाषित करता है? क्या आप एक दुकान/दुकान है जो रविवार को खुली है? शनिवार? या 9-5 सोमवार से शुक्रवार का व्यवसाय? छुट्टियों के बारे में क्या?
मान लीजिए कि आप सोमवार से शुक्रवार को सोच रहे हैं और छुट्टियां अस्थायी रूप से अचूक हैं, तो आप पर्ल में एक एल्गोरिदम का उपयोग कर सकते हैं जो नोट करता है कि रविवार को शनिवार को 6 बजे रविवार को 6 दिन होगा, और इसलिए यदि दिन 1 है, तो आपको समय से 3 * 86400 घटाएं(); यदि wday 0 है, तो आपको 2 * 86400 घटाना होगा; और अगर wday 6 है, तो आप घटाना 1 * 86400. है कि क्या तुम कॉर्न खोल सामान में मिल गया है की जरूरत है - बस बजाय पर्ल में यह कार्य करें:
#!/bin/perl -w
use strict;
use POSIX;
use constant SECS_PER_DAY => 24 * 60 * 60;
my(@days) = (2, 3, 1, 1, 1, 1, 1);
my($now) = time;
my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($now);
print strftime("%Y-%m-%d\n", localtime($now - $days[$wday] * SECS_PER_DAY));
यह आपको POSIX मॉड्यूल है मान करता है; यदि नहीं, तो आपको लगभग उसी printf() को करने की आवश्यकता होगी जैसा आपने उपयोग किया था। मैं वरीयताओं के लिए आईएसओ 8601 प्रारूप का भी उपयोग करता हूं (एक्सएसडी और एसक्यूएल द्वारा भी उपयोग किया जाता है) - इसलिए सचित्र प्रारूप।
स्रोत
2008-10-22 03:49:57
आप बाहर शनिवार छोड़ दिया है ... –
स्क्रैच कि - यह मामला पहले DAY_DIFF = 1 की डिफ़ॉल्ट सेटिंग से आच्छादित है ... यह स्पष्ट हो सकता है अगर डिफ़ॉल्ट के मामले में किया गया था। –
'मैं कैसे करूँ ...' प्रश्न का सीधा जवाब है: perl कमांड में $ {DAY_DIFF} के बाद एक और पहले एक उद्धरण रखें। –