c#winform中怎么获得上周一的日期

c#winform中怎么获得上周一的日期,第1张

楼上几层的代码都太多了,不用那么复杂。

先跟你说一下原理:

1国际上的WeekDay是从周日到周六的顺序

2再说C#的DayOfWeek枚举值是依次从0到6,即周一的枚举值为1

3算法规律:非周一的就要去获取上周一,而一周有7天。以周一为分界点,当天为周二及往后,则算法为减7天后再减当天N数再加1;周日的话,算法为减7天后再加1。

以此算法规律,可建立获取任意指定日期的上周几的日期的通用方法,代码如下:

pubilc DateTime getWeekUpOfDate(DateTime dt,DayOfWeek weekday,int Number)

{

int wd1=(int)weekday;

int wd2=(int)dtDayOfWeek;

return wd2==wd1dtAddDay(7Number):dtAddDay(7Number-wd2+wd1);

}

参数说明:dt为指定的以哪个日期来计算,weekday为计算(上、当前、下)几周的周几

方法调用如下:

DateTime dt=getWeekUpOfDate(DateTimeNow,DayOfWeekMonday,-1);

这是获取当前日期的上周一的日期

DateTime dt=getWeekUpOfDate(DateTimeNow,DayOfWeekMonday,-2);

这是获取当前日期的上上周一的日期

DateTime dt=getWeekUpOfDate(DateTimeNow,DayOfWeekMonday,1);

这是获取当前日期的下周一的日期

DateTime dt=getWeekUpOfDate(DateTimeNow,DayOfWeekMonday,0);

这是获取本周周一的日期

获取 日期 时间 星期几

var d = new Date();

var datestr = "今天是: " +dgetFullYear() + "-" +(dgetMonth()+1) + "-" + dgetDate() + " " + dgetHours() + ":" + dgetMinutes() + ":" + dgetSeconds() + " 星期"+"日一二三四五六"charAt(dgetDay())

// 判断闰年

DateprototypeisLeapYear = function()

{

return (0==thisgetYear()%4&&((thisgetYear()%100!=0)||(thisgetYear()%400==0)));

}

// 日期格式化

// 格式 YYYY/yyyy/YY/yy 表示年份

// MM/M 月份

// W/w 星期

// dd/DD/d/D 日期

// hh/HH/h/H 时间

// mm/m 分钟

// ss/SS/s/S 秒

//---------------------------------------------------

DateprototypeFormat = function(formatStr)

{

var str = formatStr;

var Week = ['日','一','二','三','四','五','六'];

str=strreplace(/yyyy|YYYY/,thisgetFullYear());

str=strreplace(/yy|YY/,(thisgetYear() % 100)>9 (thisgetYear() % 100)toString():'0' + (thisgetYear() % 100));

next_day(),last_day(),add_months()这几个函数估计需要用到,还有就是闰年的问题,注意一下就行,可能需要特殊处理

大致过程,首先获取上周每一天的日期,然后根据每个日期获取去年的相同日期,具体怎么获取,自己多试验下,无非是几个函数的组合,不会太难

import javatextSimpleDateFormat;

import javautilCalendar;

public class Demo {

public static void main(String[] args) {

// 日期格式转换

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

// 当前日期

Calendar instance = CalendargetInstance();

// 调整到上周

instanceadd(CalendarWEDNESDAY, -1);

// 调整到上周1

instanceset(CalendarDAY_OF_WEEK, 2);

//循环打印

for (int i = 1; i <= 5; i++) {

Systemoutprintln("星期" + i + ":" + formatformat(instancegetTime()));

instanceadd(CalendarDAY_OF_WEEK, 1);

}

}

}

如果是获取前一周的日期(当前日期回退一周)可以用这个:

date -d "-7 days" +"%Y-%m-%d"

或者:date -d "-1 weeks" +"%Y-%m-%d"

以上就是关于c#winform中怎么获得上周一的日期全部的内容,包括:c#winform中怎么获得上周一的日期、js获取当前日期,然后根据当前日期获取到上周周一跟周五的日期,并格式化日期yyyy-MM-dd、oracle 怎么取上周每天与去年同期每天的同比数,这日期函数应该怎么用,谢谢。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9468123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存