2014-04-01 3 views
5

यह Calculating dates given two dates excluding weekend के समान है लेकिन एक अलग समस्या है।जावा - सप्ताहांत की संख्या से दिनों की संख्या में कनवर्ट करें

सवाल यह है कि "मुझे सप्ताहांत पहले एक कार्य दिया गया था। यह कितने दिन पहले था?"

शुक्रवार को, 3 सप्ताह पहले 3 दिन पहले था। सोमवार को, 3 सप्ताह पहले 5 दिन पहले था।

मैं पुनरावृत्ति द्वारा एक बहुत ही सरल समाधान लिख सकता हूं। हालांकि, यह मुझे मारता है कि इसे ओ (1) ऑपरेशन के रूप में करना संभव होना चाहिए। एक करीबी लेकिन गलत जवाब एन + (7/5) एन है। कोई सुझाव?

उत्तर

1

पहले दिन 7 सप्ताह में 5 दिन की भी संख्या बदलती है, तो दो दिन जोड़कर शेष संभाल अगर यह एक सप्ताहांत पर जाना होगा।

int MONDAY = 1, TUESDAY = 2, WEDNESDAY = 3, THURSDAY = 4, FRIDAY = 5; 
int today = getToday(); 
int weeks = weekdays/5; 
int extraDays = weekdays % 5; 
int days = weeks * 7; 
if (today <= extraDays) { 
    days += 2; 
} 
days += extraDays; 
+0

इतना आसान है। धन्यवाद। – Jeremy

1

यह काम करना चाहिए

static int days(int weekdays){ 
     int nweeks = weekdays/5; 
     int extra = weekdays%5; 
     int[] daysPerWeekday = new int[]{<Something based on which day it is>}; 
     return nweeks*7 + daysPerWeekday[extra]; 
} 

(मैं daysPerWeekday शामिल नहीं किया था, क्योंकि यह लग रहा था जैसे आप इसे, 3 काम करने के दिन पहले 3 दिन पहले। एक सोमवार को, 3 काम करने के दिन पहले किया था ("एक शुक्रवार को 5 दिन पहले है। ") ...

+0

आप ' दिन में सप्ताह जोड़ना। – Brigham

+0

वूप्स समस्या को ठीक करना –

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