不多說了,這個可以么?
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供倉山網(wǎng)站建設(shè)、倉山做網(wǎng)站、倉山網(wǎng)站設(shè)計、倉山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、倉山企業(yè)網(wǎng)站模板建站服務(wù),十余年倉山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
import java.util.*; //引用java.util 包
class Date
{
private int year,month,day;//3個整形變量存放年、月、日
public Date(int y,int m,int d)//有參構(gòu)造函數(shù)
{
year = y 0 ? y : 1;
month = (((m=1) (m=12)) ? m : 1);
day = (((d=1) (d=31)) ? d : 1);
}
public Date()//無參構(gòu)造函數(shù)
{
this(0,0,0);
}
public int getYear()
{
return year;
}
public void setYear(int y)
{
year=y;
}
public int getMonth()
{
return month;
}
public void setMonth(int m)
{
month=m;
}
public int getDay()
{
return day;
}
public void setDay(int d)
{
day=d;
}
public String displayDate()
{
return year+"/"+month+"/"+day;//返回轉(zhuǎn)化為字符串的年/月/日
}
}
public class DateTest
{
public static void main(String[] args)
{
int y,m,d;
char c=' ';
do
{
System.out.println ("請輸入年月日(可用空格、回車或制表作為間隔):");
Scanner sc=new Scanner(System.in);
y=sc.nextInt();
m=sc.nextInt();
d=sc.nextInt();
Date date=new Date(y,m,d);
System.out.println (date.displayDate());
System.out.println ("是否修改(鍵入n退出,任意鍵字符繼續(xù))");
try
{
c=(char)System.in.read();
}
catch(Exception e){}
}while(c!='n');
System.out.println ("程序結(jié)束!");
}
}
用 java編寫:輸入任意年份和月份,輸出對應(yīng)月份的天數(shù),首先判斷輸入年份是否是閏年,然后使用switch 方法判斷月份,判斷代碼如下:
public class GetDays {?
public static int getDays(int year, int month) {
int days = 0;
boolean isLeapYear = false;
if (((year % 4 == 0) (year % 100 != 0)) || (year % 400 == 0)) {
System.out.println("這一年是閏年");
isLeapYear = true;
} else {
System.out.println("這一年不是閏年");
isLeapYear = false;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isLeapYear) {
days = 29;
} else {
days = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
System.out.println("error!!!");
break;
}
return days;
}
}
擴(kuò)展資料
在java 語言中switch 語法的使用規(guī)則為:
1、switch 語句中的變量類型可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支持字符串 String 類型了,同時 case 標(biāo)簽必須為字符串常量或字面量。
2、switch 語句可以擁有多個 case 語句。每個 case 后面跟一個要比較的值和冒號。
3、case 語句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。
3、當(dāng)變量的值與 case 語句的值相等時,那么 case 語句之后的語句開始執(zhí)行,直到 break 語句出現(xiàn)才會跳出 switch 語句。
參考資料:百度百科—switch
按照你的要求,如何得到一個月有多少天,這里并沒有說是什么年份,所以默認(rèn)當(dāng)年(不同年份的月份天數(shù)可能不一樣,例如閏年的二月)
因此問題變?yōu)?/p>
輸入條件:指定某一個月
輸出結(jié)果:當(dāng)年這個月份的天數(shù)
思路:在Java8里新的時間API里,月份已經(jīng)被抽象成了枚舉Month,所以可以把輸入條件定義為枚舉類型的Month,然后獲取當(dāng)前時間X,把時間X的月份修改為輸入條件的月份,此時時間X變?yōu)閄1,根據(jù)本身提供的方法lengthOfMonth就可以直接得到X1所在當(dāng)月的天數(shù)了
代碼:(請將JDK升到8)
public?static?void?main(String[]?args)?{
System.out.println(countDaysInMonth(Month.MAY));
}
public?static?int?countDaysInMonth(Month?month){
//?獲取當(dāng)前時間
LocalDate?now?=?LocalDate.now();
System.out.println(now);
//?把當(dāng)前時間的月份修改為輸入的月份
LocalDate?thisMonthDate?=?now.withMonth(month.getValue());
System.out.println(thisMonthDate);
return?thisMonthDate.lengthOfMonth();
}
也可以連著寫,更美觀點
public?static?int?countDaysInMonth(Month?month){
return?LocalDate.now()
.withMonth(month.getValue())
.lengthOfMonth();
}
非常直觀且易懂好用,在Java8里with就代表著修改意思,withMonth那就是修改月份,所以整個代碼讀下來就變成
獲取當(dāng)前時間A
修改A的月份為輸入條件得到時間B
計算B所在月的天數(shù)
這個問題可以用兩種方式得到:
方法一:在java中可以使用Date類直接獲得,但是這個方法過時了,不推薦使用。
方法二:使用 java.util.Calendar 類。
代碼例子:
//方法1:雖然還可以用,但是已經(jīng)不建議使用,已經(jīng)過時。
Date?date?=?new?Date();
int?old_y?=?date.getYear()+1900;//得到年份。因為得到的是1900年后至今過了多少年,所以要加1900
int?old_m?=?date.getMonth()+1;//因為得到的結(jié)果是0~11,故而加一。
int?old_d?=?date.getDate();//得到月份中今天的號數(shù)
System.out.println("現(xiàn)在是:"+old_y+"-"+old_m+"-"+old_d+"(使用過時方法)");//
//方法2:推薦使用
Calendar?calendar?=?Calendar.getInstance();
int?now_y?=?calendar.get(Calendar.YEAR);//得到年份
int?now_m?=?calendar.get(Calendar.MONTH)+1;//得到月份
int?now_d?=?calendar.get(Calendar.DATE);//得到月份中今天的號數(shù)
int?now_h?=?calendar.get(Calendar.HOUR_OF_DAY);//得到一天中現(xiàn)在的時間,24小時制
int?now_mm?=?calendar.get(Calendar.MINUTE);//得到分鐘數(shù)
int?now_s?=?calendar.get(Calendar.SECOND);//得到秒數(shù)
System.out.println("現(xiàn)在是:"+now_y+"-"+now_m+"-"+now_d+"?"+now_h+":"+now_mm+":"+now_s+"(使用推薦方法)");
結(jié)果:
現(xiàn)在是:2015-11-9(使用過時方法)
現(xiàn)在是:2015-11-9 18:7:42(使用推薦方法)
java獲取一個時間的年月日代碼及相關(guān)解釋說明參考下面代碼
package?zhidao;
import?java.util.Calendar;
public?class?Test?{
public?static?void?main(String[]?args)?{
Calendar?cal=Calendar.getInstance();//使用日歷類
int?year=cal.get(Calendar.YEAR);//獲取年份
int?month=cal.get(Calendar.MONTH)+1;//獲取月份,因為從0開始的,所以要加1
int?day=cal.get(Calendar.DAY_OF_MONTH);//獲取天
System.out.println("結(jié)果:"+year+"-"+month+"-"+day);
}
}
//將yyyyMMdd轉(zhuǎn)為date
public static Date getCoreToEmsDateStr(String dateStr){
DateFormat format = new SimpleDateFormat("yyyyMMdd");
Date d = null;
try{
d = format.parse(dateStr);
}catch(ParseException e){
e.printStackTrace();
}
return d;
}
public static String getDateAfterDays(Timestamp s,int days){
Timestamp currTimestamp = s;
for (int i=0;idays;i++){
currTimestamp = getNextDate(currTimestamp);
}
return getDateTimeStr(currTimestamp,"3");
}
public static Timestamp getNextDate(java.sql.Timestamp tsDate){
if(tsDate==null)
return null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.setTime(tsDate);
return getDateTime(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH)+1,calendar.get(Calendar.DATE)+1,
calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));
}
public static java.sql.Timestamp getDateTime(int year,int month,int day,int hour,int minute,int second){
java.sql.Timestamp ts = null;
java.util.Date dt = null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(year,month-1,day,hour,minute,second);
dt = calendar.getTime();
ts = new java.sql.Timestamp(dt.getTime());
return ts;
}
/**
* 比較兩個時間是否相同
* @param tsBeginDate
* @param tsEndDate
* @param bool
* @return
*/
public static long getDateInterval(Timestamp tsBeginDate,Timestamp tsEndDate,boolean bool){
long lDays = 0;
if(bool){
tsBeginDate = Common.getDateTime(Common.getDateString(tsBeginDate),bool);
}
if(tsBeginDate!=nulltsEndDate!=null){
Log4j.info("tsEndDate.getTime ()===="+tsEndDate);
Log4j.info("tsBeginDate.getTime ()===="+tsBeginDate);
lDays = (tsEndDate.getTime()-tsBeginDate.getTime())/86400000+1;
Log4j.info("lDays===="+lDays);
}
return lDays;
}
/**
* 格式化成Timestamp類型
* @param sDt
* @param bool
* @return
*/
public static java.sql.Timestamp getDateTime(String sDt,boolean bool){
try{
return java.sql.Timestamp.valueOf(sDt); //sDt format:yyyy-mm-dd hh:mm:ss.fffffffff
}catch(IllegalArgumentException iae){
if(bool)
sDt = sDt+" 23:59:59.0";
else
sDt = sDt+" 00:00:00.0";
return java.sql.Timestamp.valueOf(sDt);
}
}
/**
* 根據(jù)時間獲取日期字符串
* @param ts
* @return
*/
public static String getDateString(Timestamp ts){
if(ts==null)
return "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(ts);
String strMonth = String.valueOf(calendar.get(Calendar.MONTH)+1);
if(strMonth.length()==1){
strMonth = "0"+strMonth;
}
String strDay = String.valueOf(calendar.get(Calendar.DATE));
if(strDay.length()==1){
strDay = "0"+strDay;
}
return calendar.get(Calendar.YEAR)+"-"+strMonth+"-"+strDay;
}