
使用Calendar类
/Calendar类中的get(CalendarDAY_OF_WEEK)可以获取当前日期是星期几
获取当前日期是星期几<br>
@param dt
@return 当前日期是星期几
/
public static String getWeekOfDate(Date dt) {
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
Calendar cal = CalendargetInstance();
calsetTime(dt);
int w = calget(CalendarDAY_OF_WEEK) - 1;
if (w < 0)
w = 0;
return weekDays[w];
}
得自己写方法,如下(注意,第2个方法是lz想要的),经测试成功
/// <summary>
/// 获取该月中是第几周
/// </summary>
/// <param name="day">日期</param>
/// <returns></returns>
private int WeekOfMonth(SystemDateTime day)
{
string y = dayYearToString();
string m = dayMonthToString();
string s = y + "-" + m + "-1";
DateTime dt = DateTimeParse(s);
int d = dayDay - dtDay;
int w = 1;
for (int i = 1; i <= d; i++)
{
DateTime dt1 = dtAddDays(i);
if (dt1DayOfWeek == DayOfWeekSunday)
{
w = w + 1;
}
}
return w;
}
/// <summary>
/// 获取该年中是第几周
/// </summary>
/// <param name="day">日期</param>
/// <returns></returns>
private int WeekOfYear(SystemDateTime day)
{
int weeknum;
SystemDateTime fDt = DateTimeParse(dayYearToString() + "-01-01");
int k = ConvertToInt32(fDtDayOfWeek);//得到该年的第一天是周几
if (k == 0)
{
k = 7;
}
int l = ConvertToInt32(dayDayOfYear);//得到当天是该年的第几天
l = l - (7 - k + 1);
if (l <= 0)
{
weeknum = 1;
}
else
{
if (l % 7 == 0)
{
weeknum = l / 7 + 1;
}
else
{
weeknum = l / 7 + 2;//不能整除的时候要加上前面的一周和后面的一周
}
}
return weeknum;
}
// 定义变量d为当年的1月1日0点
var d = new Date();
dsetFullYear(dgetFullYear(),0,1);
// 定义day为当年1月1日的星期数(0为星期天,1为星期1,6为星期6)
var day = dgetDay();
// 定义fistweekleft为第一周剩余的天数,此处认为星期一是一周的第一天,如果将星期天定义为一周的第一天,请写成fistweekleft = (6-day)%6
var fistweekleft = (7-day)%7;
// 将d赋值为第二周的第一天,1+fistweekleft号为第一周最后天,1+fistweekleft+1为第二周第一天
dsetFullYear(dgetFullYear(),0,1+fistweekleft+1);
// 定义变量d1为当天
var d1 = new Date();
// 当前时间与当年第二周第一天的毫秒数之差除以一周的毫秒数并取整即为当前日期距本的第二周已过的周数
// 结果加上2即为当天为本年的第几周(如果在一周的第一天的0点运行此程序,结果会比实际值大1,此种情况请自行处理)
alert(2+parseInt((d1getTime()-dgetTime())/1000/60/60/24/7));
背下来就行了。不要说你想随时算。如果让我也只能说个大概。
一年有52周,平均每季度13周。第一季度因为有二月份,所以少几天,三季度因为七八月份都是大月多一天。其他都比较平均。每月约435周。其中二月是整四周,简单计算一下就能说个大概。但是每年元旦的星期数不同,所以第几周的起点计算不一样,想说精确的,还需要记忆元旦那天星期几。运算不单靠逻辑运算,记忆也非常重要的。
package comtest4;
import javautilCalendar;
import javautilDate;
public class Test5 {
public static void main(String[] args) {
Calendar c = CalendargetInstance();
csetTime(new Date());
Systemoutprintln(cget(CalendarWEEK_OF_YEAR));
}
}
1、引用命名空间: using SystemGlobalization; 2、代码: //时间赋值 DateTime date = DateTimeNow; //获取指定时间是当年的第几周 GregorianCalendar gc = new GregorianCalendar(); int weekOfYear = gcGetWeekOfYear(date, CalendarWeekRuleFirstDay, DayOfWeekMonday); ConsoleWriteLine("{0}是当年的第{1}周", dateToString("yyyy年MM月dd日"), weekOfYear); ConsoleReadKey(); //获取是当月的第几周 int dayInMonth = dateDay; //本月第一天 DateTime firstDay = dateAddDays(1 - dateDay); //本月第一天是周几 int weekday = (int)firstDayDayOfWeek == 0 7 : (int)firstDayDayOfWeek; //本月第一周有几天 int firstWeekEndDay = 7 - (weekday - 1); //当前日期和第一周之差 int diffday = dayInMonth - firstWeekEndDay; diffday = diffday > 0 diffday : 1; //当前是第几周,如果整除7就减一天 int WeekNumInMonth = ((diffday % 7) == 0 (diffday / 7 - 1) : (diffday / 7)) + 1 + (dayInMonth > firstWeekEndDay 1 : 0); ConsoleWriteLine("{0}是当月的第{1}周", dateToString("yyyy年MM月dd日"), WeekNumInMonth); ConsoleReadKey(); //打印结果 //2017年03月01日是当年的第10周 //2017年03月01日是当月的第1周
步骤如下:
1、“工具”“加载宏”,选择“分析工具库”,“确定”
2、在任意单元格输入公式=WEEKNUM(TODAY(),2)
也可以把公式中的当前日期函数TODAY()更改为自己设定的日期
以上就是关于java 获取当前日期是多少周全部的内容,包括:java 获取当前日期是多少周、asp.net中如何获取当前日期是本年第几周、JS学校里怎么计算本周是该年的第几周等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)