重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不多说了,这个可以么?
创新互联公司专业为企业提供仓山网站建设、仓山做网站、仓山网站设计、仓山网站制作等企业网站建设、网页设计与制作、仓山企业网站模板建站服务,十余年仓山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
import java.util.*; //引用java.util 包
class Date
{
private int year,month,day;//3个整形变量存放年、月、日
public Date(int y,int m,int d)//有参构造函数
{
year = y 0 ? y : 1;
month = (((m=1) (m=12)) ? m : 1);
day = (((d=1) (d=31)) ? d : 1);
}
public Date()//无参构造函数
{
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;//返回转化为字符串的年/月/日
}
}
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退出,任意键字符继续)");
try
{
c=(char)System.in.read();
}
catch(Exception e){}
}while(c!='n');
System.out.println ("程序结束!");
}
}
用 java编写:输入任意年份和月份,输出对应月份的天数,首先判断输入年份是否是闰年,然后使用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;
}
}
扩展资料
在java 语言中switch 语法的使用规则为:
1、switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
2、switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
3、case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
3、当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
参考资料:百度百科—switch
按照你的要求,如何得到一个月有多少天,这里并没有说是什么年份,所以默认当年(不同年份的月份天数可能不一样,例如闰年的二月)
因此问题变为
输入条件:指定某一个月
输出结果:当年这个月份的天数
思路:在Java8里新的时间API里,月份已经被抽象成了枚举Month,所以可以把输入条件定义为枚举类型的Month,然后获取当前时间X,把时间X的月份修改为输入条件的月份,此时时间X变为X1,根据本身提供的方法lengthOfMonth就可以直接得到X1所在当月的天数了
代码:(请将JDK升到8)
public static void main(String[] args) {
System.out.println(countDaysInMonth(Month.MAY));
}
public static int countDaysInMonth(Month month){
// 获取当前时间
LocalDate now = LocalDate.now();
System.out.println(now);
// 把当前时间的月份修改为输入的月份
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那就是修改月份,所以整个代码读下来就变成
获取当前时间A
修改A的月份为输入条件得到时间B
计算B所在月的天数
这个问题可以用两种方式得到:
方法一:在java中可以使用Date类直接获得,但是这个方法过时了,不推荐使用。
方法二:使用 java.util.Calendar 类。
代码例子:
//方法1:虽然还可以用,但是已经不建议使用,已经过时。
Date date = new Date();
int old_y = date.getYear()+1900;//得到年份。因为得到的是1900年后至今过了多少年,所以要加1900
int old_m = date.getMonth()+1;//因为得到的结果是0~11,故而加一。
int old_d = date.getDate();//得到月份中今天的号数
System.out.println("现在是:"+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);//得到月份中今天的号数
int now_h = calendar.get(Calendar.HOUR_OF_DAY);//得到一天中现在的时间,24小时制
int now_mm = calendar.get(Calendar.MINUTE);//得到分钟数
int now_s = calendar.get(Calendar.SECOND);//得到秒数
System.out.println("现在是:"+now_y+"-"+now_m+"-"+now_d+" "+now_h+":"+now_mm+":"+now_s+"(使用推荐方法)");
结果:
现在是:2015-11-9(使用过时方法)
现在是:2015-11-9 18:7:42(使用推荐方法)
java获取一个时间的年月日代码及相关解释说明参考下面代码
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("结果:"+year+"-"+month+"-"+day);
}
}
//将yyyyMMdd转为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);
}
}
/**
* 根据时间获取日期字符串
* @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;
}