PDA

View Full Version : سوال: چطوری در یک ماه (29 یا30 یا 31 روزه) تعداد روزهای یک روز خاص از هفته رو بشماریم؟



دلتنگ اسمان
پنج شنبه 07 آذر 1392, 17:31 عصر
سلام
میخوام تعداد روزهای خاصی از هفته رو در طول ماه بشمارم. مثلا چندتا شنبه یا چندتا سه شنبه داریم؟ این قضیه با توجه به تعداد روزهای ماه و همچنین ماه با چه روزی شروع شده پیچیده میشه.میشه لطفا راهنمایی کنید. ممنون

forodo
پنج شنبه 07 آذر 1392, 18:10 عصر
سلام
من امتحان نکردم ولی فکر کنم مثلاً یک تاریخ رو در حلقه قرار بدهیم و بگیم اگر آن روز مثلاً شنبه بود به یک متغیر یک واحد اضافه کن و اگر یکشنبه بود به یک متغیر دیگه یک واحد اضافه کن و الی آخر.

plus
پنج شنبه 07 آذر 1392, 18:54 عصر
1) تعداد روزهای ماه و روز اول ماه رو بدست بیارین.
2) تعداد روزهای ابتدایی غیر موثر در ماه رو از تعداد روزهای اصلی کم کنید.مثلا، اگه ماه ما 30 روز باشه و:
الف) روز مورد نظر شما برای شمارش سه شنبه باشه و روز اول ماه، یکشنبه، دو روز اول ماه، غیر موثر هست و تعداد روز موثر 28 روز میشه.
ب) و یا روز مورد نظر شما برای شمارش شنبه باشه و روز اول ماه، یکشنبه، شش روز اول ماه، غیر موثر هست و تعداد روز موثر 24 روز میشه.
3) جواب مورد نظر،

1 + (n - 1) / 7

میشه که n همون تعداد روز موثر هست.در واقع ما اول تعداد روز غیر موثر ابتدای ماه رو کم میکنیم تا به اولین روز مورد نظر، مثلا اولین شنبه برسیم.تا انجا یکبار شنبه اتفاق افتاده.با کم کردن یک از تعداد روزها، تعداد روزهای باقی مونده بدست میاد که با تقسیم صحیح اون بر 7، تعداد شنبه ها دیگه که توی یک روزها هستن محاسبه میشن.

rahnema1
جمعه 08 آذر 1392, 23:56 عصر
سلام
این برنامه تعداد روزهای هفته را در ماه 9 از سال 92 می شماره


double rooz=0;int mah=9;
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
DateTime[] dt = new DateTime[pc.GetDaysInMonth(1392,mah)];
dt[0]=pc.ToDateTime(1392,mah,1,0,0,0,0);
var numweekd=dt.Select(iii=>iii.AddDays(rooz++)).GroupBy(ggg=>ggg.DayOfWeek).ToList();
foreach (var element in numweekd) {
MessageBox.Show(element.Key.ToString()+","+element.Count().ToString());
}