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 编程 计算时间(计算本周,本月)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)