『壹』 java給予一個日期算出當年的第幾天以及第幾周
java中Calendar類中給出了求第幾天第幾周的方法的,所以直接引用即可。
Calendar ca = Calendar.getInstance();//創建一個日期實例
ca.setTime(new Date());//實例化一個日期
System.out.println(ca.get(Calendar.DAY_OF_YEAR));//獲取是第多少天
System.out.println(ca.get(Calendar.WEEK_OF_YEAR));//獲取是第幾周
備註:此方法提供了很多方法,如查月,日等等。
『貳』 為什麼我這用java獲取的當前時間,日期中間多個0,應該是15號,為什麼是105
你寫的日期模板"YYYY-MM-DD HH:MM:SS"不對,應該是"yyyy-MM-dd HH:mm:ss"
因為DD是指在當年中的天數,105就是4月15日是2017年的第105天.
MM是指月份,而不是指分鍾,分鍾應該是mm
SS是指毫秒數,秒應該是ss
YYYY大小寫都行.
完整的Java程序如下
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassF8{
publicstaticvoidmain(String[]args){
Datedate=newDate();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
Stringtime=sdf.format(date);
System.out.println(time);
}
}
運行結果
2017-04-1522:49:37
『叄』 java 一年的第一周從2月1號開始,獲取今年的第三周的星期一,以及去年第三周的星期一 對應的日期
public getWeekCount(Date date){ // 獲取日歷類實例 java.util.Calendar calendar = java.util.Calendar.getInstance(); // 設置時間 calendar.setTime(date); // 設置周一為每周第一天 calendar.setFirstDayOfWeek(java.util.Calendar.MONDAY); // 返回當年最大周數 return calendar.getActualMaximum(java.util.Calendar.WEEK_OF_YEAR);}
『肆』 關於java中如何獲取當前年份的第一天和最後一天
packagecom.dada.test;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
/**
*@authorli_yueling
*@version1.02011-03-25
*
*/
publicclassDateUtil{
/**
*默認日期格式
*/
publicstaticStringDEFAULT_FORMAT="yyyy-MM-dd";
/**
*測試主方法
*@paramargs
*/
publicstaticvoidmain(String[]args){
for(inti=1951;i<1960;i++){
System.out.println(formatDate(getYearFirst(i)));
System.out.println(formatDate(getYearLast(i)));
}
System.out.println(formatDate(getCurrYearFirst()));
System.out.println(formatDate(getCurrYearLast()));
}
/**
*格式化日期
*@paramdate日期對象
*@returnString日期字元串
*/
publicstaticStringformatDate(Datedate){
SimpleDateFormatf=newSimpleDateFormat(DEFAULT_FORMAT);
StringsDate=f.format(date);
returnsDate;
}
/**
*獲取當年的第一天
*@paramyear
*@return
*/
(){
CalendarcurrCal=Calendar.getInstance();
intcurrentYear=currCal.get(Calendar.YEAR);
returngetYearFirst(currentYear);
}
/**
*獲取當年的最後一天
*@paramyear
*@return
*/
(){
CalendarcurrCal=Calendar.getInstance();
intcurrentYear=currCal.get(Calendar.YEAR);
returngetYearLast(currentYear);
}
/**
*獲取某年第一天日期
*@paramyear年份
*@returnDate
*/
publicstaticDategetYearFirst(intyear){
Calendarcalendar=Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR,year);
DatecurrYearFirst=calendar.getTime();
returncurrYearFirst;
}
/**
*獲取某年最後一天日期
*@paramyear年份
*@returnDate
*/
publicstaticDategetYearLast(intyear){
Calendarcalendar=Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR,year);
calendar.roll(Calendar.DAY_OF_YEAR,-1);
DatecurrYearLast=calendar.getTime();
returncurrYearLast;
}
}
『伍』 java怎麼統計出當年有多少個周,並列出那些
計算一年有多少個周的思路:首先,每年至少有52個周,至多有53個周,取決於周一是在哪年(也可以定位周日,這個是由需求決定的),以下是詳細代碼,其中判斷哪一天決定了當周是屬於哪一年的邏輯是寫在getYearWeekEndDay中。
/**
*
返回指定年度的所有周。List中包含的是String[2]對象<br>
*
string[0]本周的開始日期,string[1]是本周的結束日期。<br>
*
日期的格式為yyyy-MM-dd。<br>
*
每年的第一個周,必須包含星期一且是完整的七天。<br>
*
例如:2009年的第一個周開始日期為2009-01-05,結束日期為2009-01-11。
<br>
*
星期一在哪一年,那麼包含這個星期的周就是哪一年的周。<br>
*
例如:2008-12-29是星期一,2009-01-04是星期日,哪么這個周就是2008年度的最後一個周。<br>
*
*
@param
year
格式
yyyy
,必須大於1900年度
小於9999年
*
@return
*/
public
static
List<String[]>
getWeeksByYear(final
int
year){
if(year<1900
||
year
>9999){
throw
new
NullPointerException("年度必須大於等於1900年小於等於9999年");
}
//實現思路,首先計算當年有多少個周,然後找到每個周的開始日期和結束日期
//
Calendar
calendar
=
new
GregorianCalendar();
//
//
在具有默認語言環境的默認時區內使用當前時間構造一個默認的
GregorianCalendar。
//
calendar.setFirstDayOfWeek(Calendar.MONDAY);
//設置每周的第一天為星期一
//
calendar.set(Calendar.DAY_OF_WEEK,
Calendar.MONDAY);
//每周從周一開始
//
上面兩句代碼配合,才能實現,每年度的第一個周,是包含第一個星期一的那個周。
//
calendar.setMinimalDaysInFirstWeek(7);
//設置每周最少為7天
//
calendar.set(Calendar.YEAR,
year);
//
設置年度為指定的年
//
//首先計算當年有多少個周,每年都至少有52個周,個別年度有53個周
int
weeks
=
getWeekNumByYear(year);
//
System.out.println(year+"共有"+weeks+"個周");
List<String[]>
result
=
new
ArrayList<String[]>(weeks);
for(int
i=1;i<=weeks;i++){
String[]
tempWeek
=
new
String[2];
tempWeek[0]
=
getYearWeekFirstDay(year,i);
tempWeek[1]
=
getYearWeekEndDay
(year,i);
//或者使用下面的代碼,不過發現效率更低
//
tempWeek[0]
=
getDateAdd(firstWeekDay,(i-1)*7+0);
//
tempWeek[1]
=
getDateAdd(firstWeekDay,(i-1)*7+6);
result.add(tempWeek);
//
System.out.println(i+"="+tempWeek[0]+"_"+tempWeek[1]);
}
『陸』 編寫java程序,由鍵盤輸入年份,顯示當年日歷,要求使用數組。
首先鍵盤輸入的話多種方式實現,提供兩種,一是使用main方法的arg參數,也就是在使用java命令的時候後面跟上參數,在main方法里調用arg[0]即可,第二種方法是使用scanner類來得到system.in的內容
然後就是列印全年,這個只要使用calendar類即可,得到calendar對象以後通過一個循環365次,不斷的day加一即可
『柒』 java怎麼獲取當年所有的星期,並列出所有星期,如現在25周(20130617-20130623)
importjava.text.DecimalFormat;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
publicclassWeekDemo{
publicstaticvoidmain(String[]args){
printWeeks();
}
=newSimpleDateFormat("yyyy.MM.dd");
privatestaticDecimalFormatdf=newDecimalFormat("00");
privatestaticvoidprintWeeks(){
Calendarcalendar=Calendar.getInstance();
intyear=calendar.get(Calendar.YEAR);
calendar.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
calendar.set(Calendar.WEEK_OF_YEAR,1);
intweek=1;
while(calendar.get(Calendar.YEAR)<=year){
if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY){
StringBuilderbuilder=newStringBuilder();
builder.append("第").append(df.format(week++)).append("周(");
builder.append(sdf.format(calendar.getTime())).append("-");
calendar.add(Calendar.DATE,6);
builder.append(sdf.format(calendar.getTime())).append(")");
System.out.println(builder.toString());
}
calendar.add(Calendar.DATE,1);
}
}
}
『捌』 java給予一個時間計算是當年第多少周
import java.util.Calendar;
import java.util.Date;
public class TestDate
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Calendar cal=Calendar.getInstance();
cal.setTime(new Date());
int i = cal.get(Calendar.WEEK_OF_YEAR);
System.out.println(i);
}
}