asp.net 如何获取本周日期 根据当天算出本周是几号到几号

asp.net 如何获取本周日期 根据当天算出本周是几号到几号,第1张

DateTime currentDate = DateTimeNowDate;

int dayOfWeek = (int)currentDateDayOfWeek;

// 以星期日为第一天时,第一天为

DateTime firstDay = currentDateAddDays(-dayOfWeek);

// 最后一天

DateTime lastDay = firstDayAddDays(6);

/

获取上周五时间

/

public Date lastFirday() {

//作用防止周日得到本周日期

Calendar calendar = CalendargetInstance();

while (calendarget(CalendarDAY_OF_WEEK) != CalendarMONDAY) {

calendaradd(CalendarDAY_OF_WEEK, -1);

}

int dayOfWeek = calendarget(CalendarDAY_OF_WEEK) - 1;

int offset = 7 - dayOfWeek;

calendaradd(CalendarDATE, offset - 9);

return DateTimeUtilgetFirstDayOfWeek(calendargetTime(), 6);//这是从上周日开始数的到本周五为6

}

/

获取上周一时间

/

public Date lastMonday() {

Calendar calendar = CalendargetInstance();

while (calendarget(CalendarDAY_OF_WEEK) != CalendarMONDAY) {

calendaradd(CalendarDAY_OF_WEEK, -1);

}

int dayOfWeek = calendarget(CalendarDAY_OF_WEEK) - 1;

int offset = 1 - dayOfWeek;

calendaradd(CalendarDATE, offset - 7);

return DateTimeUtilgetFirstDayOfWeek(calendargetTime(), 2);

}

这个可以用dwr框架来做,你可以google一下dwr框架,是前台页面通过js直接调用后台方法的轻量级框架。

至于时间算法

1显示本周,那得算出当前周的周一到周7(国外是周日到周六为一周)是几号到几号。 方法是:

private static HashMap<String, String> getWeekByDate() {

HashMap<String, String> dayMap = new HashMap<String, String>();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式

Calendar cal = CalendargetInstance();

calsetTime(new Date());

// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了

int dayWeek = calget(CalendarDAY_OF_WEEK);// 获得当前日期是一个星期的第几天

if (1 == dayWeek) {

caladd(CalendarDAY_OF_MONTH, -1);

}

Systemoutprintln("要计算日期为:" + sdfformat(calgetTime())); // 输出要计算日期

calsetFirstDayOfWeek(CalendarMONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

int day = calget(CalendarDAY_OF_WEEK);// 获得当前日期是一个星期的第几天

caladd(CalendarDATE, calgetFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

String imptimeBegin = sdfformat(calgetTime());

Systemoutprintln("所在周星期一的日期:" + imptimeBegin);

dayMapput("Monday", imptimeBegin);

caladd(CalendarDATE, 6);

String imptimeEnd = sdfformat(calgetTime());

Systemoutprintln("所在周星期日的日期:" + imptimeEnd);

dayMapput("SunDay", imptimeEnd);

return dayMap;

}

得到了周一和周日具体是那天,直接去数据库查就OK了,怎么查可以去看下SQL里的between关键字

还有一些写不下,追问一下

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、之后在该界面中,点击左上角“新建查询”选项。

3、接着在该界面中,输入昨天,今天,明天和本周的记录的sql语句“select from test2 where time = DATEADD( day,-1, convert(varchar(10),getdate(),120) ); select from test2 where time= DATEADD( day,0, convert(varchar(10),getdate(),120) ); select from test2 where time> DATEADD( day,-6, convert(varchar(10),getdate(),120) );”。

4、然后在该界面中,点击左上方“执行”按钮。

5、最后在该界面中,显示昨天,今天,明天和本周的记录成功。

国外一周的开始是从星期日,结束是星期六;而国内一周开始为星期一,结束为星期日,所以分别按两个方式处理:

1,国外日期格式

代码为:

Calendar calendar = new GregorianCalendar(); //获取当前日期

Systemoutprintln(calendargetTime()); //打印当前日期

calendaradd(CalendarDAY_OF_WEEK,7-calendarget(CalendarDAY_OF_WEEK)+1);

Systemoutprintln(calendargetTime()); //打印下周日的日期

calendaradd(CalendarDAY_OF_WEEK, 6);

Systemoutprintln(calendargetTime()); //打印下周六的日期

代码解释:

Calendar 自身带了很多对日期处理的方法,add方法是将当前日期按照年、月、日向后增加时间。“calendarget(CalendarDAY_OF_WEEK)”意思是今天是本周的第几天。“7-calendarget(CalendarDAY_OF_WEEK)"意思为本周还剩多少天,再加1表示距离下周星期日还有多少天。calendaradd(CalendarDAY_OF_WEEK,7-calendarget(CalendarDAY_OF_WEEK)+1)意思是在今天的日期上向后推进到下周日,Calendar 会自动进行运算。此时Calendar保存的是下周日的日期,计算出下周六的日期只需再加6即可。

2,国内日期格式

代码为:

Calendar calendar = new GregorianCalendar(); //获取当前日期

Systemoutprintln(calendargetTime()); //打印当前日期

calendaradd(CalendarDAY_OF_WEEK,7-calendarget(CalendarDAY_OF_WEEK)+2);

Systemoutprintln(calendargetTime()); //打印下周一的日期

calendaradd(CalendarDAY_OF_WEEK, 6);

Systemoutprintln(calendargetTime()); //打印下周日的日期

执行结果:

Mon Feb 25 16:25:01 CST 2013 //当前日期:2月25号 星期1

Mon Mar 04 16:25:01 CST 2013 //下周一日期:3月4号 星期1

Sun Mar 10 16:25:01 CST 2013 //下周日日期:3月10号 星期天

public static void main(String[] agrs) {

String newtime="2013-8-4";

Systemoutprintln(newtime+""+testDate(newtime));

}

public static String testDate(String newtime) {

String dayNames[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

int week1[] = {7,1,2,3,4,5,6};

Calendar c = CalendargetInstance();// 获得一个日历的实例

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

try {

csetTime(sdfparse(newtime));

} catch (ParseException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

String a=dayNames[cget(CalendarDAY_OF_WEEK)-1];

int b=week1[cget(CalendarDAY_OF_WEEK)-1];

if(b!=7){

cset(CalendarDAY_OF_WEEK, CalendarMONDAY);

}else{

cadd(CalendarWEEK_OF_MONTH, -1);

cset(CalendarDAY_OF_WEEK, 2);

}

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

if(i==1){

Systemoutprintln(sdfformat(cgetTime()));//本周一

}

cadd(CalendarDATE,1);

Systemoutprintln(sdfformat(cgetTime()));

}

Systemoutprintln("-------------");

return a;

}

测试结果:

2013-07-29

2013-07-30

2013-07-31

2013-08-01

2013-08-02

2013-08-03

2013-08-04

-------------

2013-8-4星期日

select from table where date between (getdate()-((datepart(weekday,getdate())+5)% 7))) and getdate()

datepart(weekday,'2009-12-12')函数是获取周信息,返回一个整数,

1表示周日,2表示周一,以此类推

import javatextSimpleDateFormat;

import javautilCalendar;

public class DataTest {

public static void main(String[] args) {

printWeekdays();

}

private static final int FIRST_DAY = CalendarMONDAY;

private static void printWeekdays() {

Calendar calendar = CalendargetInstance();

setToFirstDay(calendar);

for (int i = 0; i < 7; i++) {

printDay(calendar);

calendaradd(CalendarDATE, 1);

}

}

private static void setToFirstDay(Calendar calendar) {

while (calendarget(CalendarDAY_OF_WEEK) != FIRST_DAY) {

calendaradd(CalendarDATE, -1);

}

}

private static void printDay(Calendar calendar) {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd EE");

Systemoutprintln(dateFormatformat(calendargetTime()));

}

}

以上就是关于asp.net 如何获取本周日期 根据当天算出本周是几号到几号全部的内容,包括:asp.net 如何获取本周日期 根据当天算出本周是几号到几号、java如何得到上周一和上周日的日期、java 编程 计算时间(计算本周,本月)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存