请教c#如何用for或其他语法优化以下代码

xiehuangda 2021-01-04 08:34:44
请教c#如何用for或其他语法优化以下代码

int iWTian = 0;//(每周)当天库值时间小于现在-自增
if (Convert.ToDateTime(DateTime.Now.ToString(wTime)) <= DateTime.Now) { iWTian = 7; }//自增1周

int iWeek = Convert.ToInt32(DateTime.Today.DayOfWeek.ToString("d"));//当前周,数字格式化周0-6
int iTian = 0;//增加天数


switch (wDay)
{
case "日":
if (iWeek == 0) { iTian += iWTian; }
if (iWeek == 1) { iTian = 6; }
if (iWeek == 2) { iTian = 5; }
if (iWeek == 3) { iTian = 4; }
if (iWeek == 4) { iTian = 3; }
if (iWeek == 5) { iTian = 2; }
if (iWeek == 6) { iTian = 1; }
break;
case "一":
if (iWeek == 0) { iTian = 1; }
if (iWeek == 1) { iTian += iWTian; }
if (iWeek == 2) { iTian = 6; }
if (iWeek == 3) { iTian = 5; }
if (iWeek == 4) { iTian = 4; }
if (iWeek == 5) { iTian = 3; }
if (iWeek == 6) { iTian = 2; }
break;
case "二":
if (iWeek == 0) { iTian = 2; }
if (iWeek == 1) { iTian = 1; }
if (iWeek == 2) { iTian += iWTian; }
if (iWeek == 3) { iTian = 6; }
if (iWeek == 4) { iTian = 5; }
if (iWeek == 5) { iTian = 4; }
if (iWeek == 6) { iTian = 3; }
break;
case "三":
if (iWeek == 0) { iTian = 3; }
if (iWeek == 1) { iTian = 2; }
if (iWeek == 2) { iTian = 1; }
if (iWeek == 3) { iTian += iWTian; }
if (iWeek == 4) { iTian = 6; }
if (iWeek == 5) { iTian = 5; }
if (iWeek == 6) { iTian = 4; }
break;
case "四":
if (iWeek == 0) { iTian = 4; }
if (iWeek == 1) { iTian = 3; }
if (iWeek == 2) { iTian = 2; }
if (iWeek == 3) { iTian = 1; }
if (iWeek == 4) { iTian += iWTian; }
if (iWeek == 5) { iTian = 6; }
if (iWeek == 6) { iTian = 5; }
break;
case "五":
if (iWeek == 0) { iTian = 5; }
if (iWeek == 1) { iTian = 4; }
if (iWeek == 2) { iTian = 3; }
if (iWeek == 3) { iTian = 2; }
if (iWeek == 4) { iTian = 1; }
if (iWeek == 5) { iTian += iWTian; }
if (iWeek == 6) { iTian = 6; }
break;
case "六":
if (iWeek == 0) { iTian = 6; }
if (iWeek == 1) { iTian = 5; }
if (iWeek == 2) { iTian = 4; }
if (iWeek == 3) { iTian = 3; }
if (iWeek == 4) { iTian = 2; }
if (iWeek == 5) { iTian = 1; }
if (iWeek == 6) { iTian += iWTian; }
break;
default: break;
}
...全文
1570 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Denuin多啦咧梦 2021-01-05
  • 打赏
  • 举报
回复

Dictionary<string,int> dicW = new Dictionary<string,int>()
{
	["日"] = 0,
	["一"] = 1,
	["二"] = 2,
	["三"] = 3,
	["四"] = 4,
	["五"] = 5,
	["六"] = 6,
};
string wDay = "一";  // for test
DateTime nowDt = DateTime.Now;

int w1 = (int) nowDt.DayOfWeek;  // 今天星期几的数字
int w2 = dicW[wDay]; // 目标星期几的数字

int n =  w1 > w2 ? 7 + w2 - w1 : w2 - w1; // 间隔天数
DateTime newDt = nowDt.AddDays(n); // 目标日期
Console.WriteLine(newDt);
肖无疾 2021-01-04
  • 打赏
  • 举报
回复

string dataWk = "日";
            DateTime today = DateTime.Now;
            for(int i = 0; i < 7; i++)
            {
                DateTime temp = today.AddDays(i);
                if (temp.ToString("ddd").Contains(dataWk))
                {
                    tbLog.Text = temp.ToString();
                    break;
                }
            }

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧