लिनक्स सीएलआई पर, महीने के सप्ताह की संख्या प्राप्त करने का एक तरीका है? शायद एक सरल (जैसे date
) कमांड के साथ इसे प्राप्त करने का एक और तरीका है ? मान लीजिए कि दिन 1 से 7 पहला सप्ताह है, दिन 8 से 14 दूसरा सप्ताह है, और इसी तरह।
लिनक्स सीएलआई पर, महीने के सप्ताह की संख्या प्राप्त करने का एक तरीका है? शायद एक सरल (जैसे date
) कमांड के साथ इसे प्राप्त करने का एक और तरीका है ? मान लीजिए कि दिन 1 से 7 पहला सप्ताह है, दिन 8 से 14 दूसरा सप्ताह है, और इसी तरह।
जवाबों:
date
ताकि आप कुछ बाहरी गणित की जरूरत आदेश आंतरिक रूप से ऐसा नहीं कर सकते।
echo $((($(date +%-d)-1)/7+1))
संपादित करें:% और d के बीच एक ऋण चिह्न जोड़ा गया
आप इसका उपयोग कर सकते हैं:
सोमवार प्रथम सप्ताह का दिन
WEEKNUMBER=$(( 1 + $(date +%V) - $(date -d "$(date -d "-$(($(date +%d)-1)) days")" +%V) ))
रविवार Firs सप्ताह डेटी
WEEKNUMBER=$(( 1 + $(date +%U) - $(date -d "$(date -d "-$(($(date +%d)-1)) days")" +%U) ))
विक्टर सांचेज़ के समाधान को सरल बनाना:
expr 1 + $(date +%V) - $(date +%V -d $(date +%Y-%m-01))
% V को% U से बदलें यदि आप रविवार से शुरू होने वाले सप्ताह चाहते हैं।
btw: को $ (...) के बजाय expr का उपयोग करना पड़ा क्योंकि बाद में अग्रणी शून्य के साथ संख्याओं को पसंद नहीं किया जाता है।
यदि आप अपनी खोज में बाहरी उपकरणों को स्वीकार करते हैं, तो खजूर का उपयोग करें । इसे घटना-महीने की तारीखों की धारणा मिल गई है, यानी 27 अप्रैल 2012 अप्रैल 2012 में 4 वें शुक्र है, जो सिर्फ आपके सप्ताह की परिभाषा के साथ मेल खाता है। उस नंबर का उपयोग करने के लिए:
dconv 2012-04-27 -f %c
=>
04
%c
(गिनती) घटना के लिए प्रारूप निर्दिष्ट करने वाला महीना है। या भी कूलर की कोशिश हो
dconv today -f '%cth %a in %b %Y'
=>
1st Wed in Sep 2012