更优雅的方式获得“上周五”? [英] More elegant way to get "Friday of last week"?
问题描述
大家好,
这就是我上周五的星期五。令我感到震惊的是,b $ b很麻烦。是否有更光滑/更优雅的方式?
感谢您的任何想法,
cdj
private string prevFridayString(DateTime day)
{
DateTime rv;
int offset = 0;
开关(day.DayOfWeek)
{
case DayOfWeek.Sunday:
offset = 5;
break;
case DayOfWeek.Monday:
offset = 4;
break;
case DayOfWeek.Tuesday :
offset = 3;
休息;
案例DayOfWeek.Wednesday:
offset = 2;
休息;
案例DayOfWeek.Thursday:
offset = 1;
休息;
case DayOfWeek.Friday:
offset = 0;
break;
case DayOfWeek.Saturday:
offset = -1;
休息;
}
rv = day.AddDays(-7 + offset);
返回rv.ToShortDateString();
}
Hi all,
This is how I''m currently getting Friday of last week. It strikes me as
cumbersome. Is there a slicker/more elegant way?
Thanks for any ideas,
cdj
private string prevFridayString(DateTime day)
{
DateTime rv;
int offset = 0;
switch (day.DayOfWeek)
{
case DayOfWeek.Sunday:
offset = 5;
break;
case DayOfWeek.Monday:
offset = 4;
break;
case DayOfWeek.Tuesday:
offset = 3;
break;
case DayOfWeek.Wednesday:
offset = 2;
break;
case DayOfWeek.Thursday:
offset = 1;
break;
case DayOfWeek.Friday:
offset = 0;
break;
case DayOfWeek.Saturday:
offset = -1;
break;
}
rv = day.AddDays(-7 + offset);
return rv.ToShortDateString();
}
推荐答案
sher ifffruitfly写道:
sherifffruitfly wrote:
这就是我上周五的星期五。令我感到震惊的是,b $ b很麻烦。有更光滑/更优雅的方式吗?
This is how I''m currently getting Friday of last week. It strikes me as
cumbersome. Is there a slicker/more elegant way?
类似于:
DateTime dt = DateTime.Now;
while(dt。 DayOfWeek!= DayOfWeek.friday)dt = dt.AddDays(-1);
[未经测试 - 请检查]
Arne
Something like:
DateTime dt = DateTime.Now;
while(dt.DayOfWeek != DayOfWeek.friday) dt = dt.AddDays(-1);
[untested - please check]
Arne
Arne Vajh?j写道:
Arne Vajh?j wrote:
>
DateTime dt = DateTime.Now;
while(dt.DayOfWeek!= DayOfWeek.friday)dt = dt.AddDays(-1);
>
DateTime dt = DateTime.Now;
while(dt.DayOfWeek != DayOfWeek.friday) dt = dt.AddDays(-1);
很好。这个想法非常清楚 - 谢谢!
cdj
Nice. The idea is perfectly clear - thanks!
cdj
sherifffruitfly写道:
sherifffruitfly wrote:
Arne Vajh?j写道:
Arne Vajh?j wrote:
> DateTime dt = DateTime.Now;
while(dt.DayOfWeek! = DayOfWeek.friday)dt = dt.AddDays(-1);
>DateTime dt = DateTime.Now;
while(dt.DayOfWeek != DayOfWeek.friday) dt = dt.AddDays(-1);
很好。这个想法非常明确 - 谢谢!
Nice. The idea is perfectly clear - thanks!
如果你想在7天前回来,如果今天是星期五那么你将需要:
DateTime dt = DateTime。 Now.AddDays(-1);
你还应该注意它没有针对速度进行优化。
但任何维护程序员都在阅读代码将理解
算法。
Arne
If you want to go 7 days back if today is Friday then you will need:
DateTime dt = DateTime.Now.AddDays(-1);
You should also note that it is not optimized for speed.
But any maintenance programmer reading the code will understand
the "algorithm".
Arne
这篇关于更优雅的方式获得“上周五”?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!