| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1516 人关注过本帖
标题:如何解决08,09会被系统认为是八进制问题,避免编译产生过大整数错误
只看楼主 加入收藏
JavaJack
Rank: 2
来 自:YunNan
等 级:论坛游民
帖 子:24
专家分:26
注 册:2016-11-16
结帖率:0
收藏
 问题点数:0 回复次数:0 
如何解决08,09会被系统认为是八进制问题,避免编译产生过大整数错误
写一个创建日期的函数,如果参数有效则返回格式为“YYYY-mm-dd”的字符串,否则返回 “无效的参数”。假设被4整除的是
闰年,输入的年大于1900。Java: String  makeDate(int year, int month, int day)

写很烂的程序!求路过的大神指教
import java.util.Date;
import java.text.SimpleDateFormat;
class NDate
{
    int year;
    int month;
    int day;
    public String setDateFormat(String str1){                        //格式化日期方法
        Date d=null;
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");            //指定日期格式化形式
        try
        {
            d=sdf.parse(str1);                                //将字符串变为date型数据,方便日期格式化
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return sdf.format(d).toString();                //将设置好的日期格式再变回为字符串返回
    }
    public String makeDate(int year,int month,int day){
        String str=null;                                //声明str对象,保存返回值
        String string=null;
        String y=String.valueOf(year);                    //将整型数字转变为字符串,以便于验证所输入数据是否合理
        String m=String.valueOf(month);
        String d=String.valueOf(day);
        if ((y.length()==4)&&(m.length()==2||m.length()==1)&&(d.length()==2||d.length()==1))
        {    //判断输入参数的格式是否合理
            if (month==01||month==03||month==05||month==07||month==8||month==10||month==12)
            {
                if (day>0&&day<=31)
                {        //判断是否是31天的月份
                    string = year + "-" + month + "-" + day;
                    str=setDateFormat(string);                    //调用方法为日期格式化
                }else{
                    str = "the param is invalid";
                }
            }
            if (month==04||month==06||month==9||month==11)
            {
                if (day>0&&day<=30)
                {        //判断是否是30天的月份
                    string = year + "-" + month + "-" + day;
                    str=setDateFormat(string);
                }else{
                    str = "the param is invalid";
                }
            }
            if (month==02)
            {
                if (year%4==0)
                {                //闰年2月
                    if (day>0&&day<=29)
                    {        //判断是否符合闰年2月份条件
                        string = year + "-" + month + "-" + day;
                        str=setDateFormat(string);
                    }else{
                        str = "the param is invalid";
                    }
                }else{            //平年2月
                    if (day>0&&day<=28)
                    {        //判断是否符合平年2月份条件
                        string = year + "-" + month + "-" + day;
                        str=setDateFormat(string);
                    }else{
                        str = "the param is invalid";
                    }
                }   
            }
        }else{
            str = "the param is invalid";
        }
        return str;
    }
}
public class MakeDateDemo03
{
    public static void main(String args[])
    {
        NDate date=new NDate();
        System.out.println(date.makeDate(2001,02,28));        
    }
}
搜索更多相关主题的帖子: public import 八进制 字符串 null 
2016-11-18 17:55
快速回复:如何解决08,09会被系统认为是八进制问题,避免编译产生过大整数错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023257 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved