更优雅的方式获得“上周五”? [英] More elegant way to get "Friday of last week"?

查看:58
本文介绍了更优雅的方式获得“上周五”?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


这就是我上周五的星期五。令我感到震惊的是,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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆