| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

分别用C++和Java写的计算后天的日期代码

    #include<iostream>        #include<cstdio>        #include<cstring>        using namespace std;        bool checkNum(char c){            if(c >='0' && c <='9')                return true;            return false;        }        bool checkString(string str){            if(checkNum(str[0])&&checkNum(str[1])&&checkNum(str[2])               &&checkNum(str[3])&&(str[4]=='-')&&checkNum(str[5])               &&checkNum(str[6])&&(str[7]=='-')&&checkNum(str[8])&&checkNum(str[9]))                return true;            return false;        }        int main(){            string str;            int year;            int month;            int day;            while(cin>>str){               int flag = 1;               if(!checkString(str)){                   flag=0;                   cout<<"您输入的日期格式不符合要求"<<endl<<endl;              }else{                year=(str[0]-'0')*1000+(str[1]-'0')*100+(str[2]-'0')*10+(str[3]-'0');                month=(str[5]-'0')*10+(str[6]-'0');                day=(str[8]-'0')*10+(str[9]-'0');                if(month==1 || month==3 || month==5 || month==7                     || month==8 || month==10 || month==12){                    if(day >=1 && day <=31){                        day += 2;                        if(day > 31){                            month += 1;                            day = 1;                        }                        if(month > 12){                            year += 1;                            month = 1;                        }                    }else{                        flag=0;                        cout<<"您输入的日期不存在"<<endl<<endl;                    }                }                else if(month==4 || month==6 || month==9 || month==11){                    if(day >=1 && day <=30){                        day += 2;                        if(day > 30){                            month += 1;                            day = 1;                        }                        if(month > 12){                            year += 1;                            month = 1;                        }                    }else{                        flag=0;                        cout<<"您输入的日期不存在"<<endl<<endl;                    }                }                else if(month == 2){                    if((year%4==0 && year%100!=0) || (year%400==0)){                      //如果为闰年                         if(day >=1 && day <=29){                            day += 2;                            if(day > 29){                                month += 1;                                day = 1;                            }                            if(month > 12){                                year += 1;                                month = 1;                            }                        }else{                           flag=0;                           cout<<"您输入的日期不存在"<<endl<<endl;                        }                    }                    else{                        if(day >=1 && day <=28){                            day += 2;                            if(day > 28){                                month += 1;                                day = 1;                            }                            if(month > 12){                                year += 1;                                month = 1;                            }                        }else{                           flag=0;                           cout<<"您输入的日期不存在"<<endl<<endl;                        }                    }                }                else{                    cout<<"您输入的月份不存在"<<endl<<endl;                }              }              if(flag==1){                cout<<"后天的日期为: "<<year<<"年"<<month<<"月"<<day<<"日"<<endl<<endl;              }            }            return 0;        }  

    import java.util.Scanner;                public class CalculateTheDayAfterTomorrow {                    public static boolean checkNum(char c) {                // 判断当前字符是否为数字                if (c >= '0' && c <= '9')                    return true;                return false;            }                    public static boolean checkString(String str) {                // 判断字符串是否为指定的日期格式:yyyy-mm-dd                if (checkNum(str.charAt(0)) && checkNum(str.charAt(1))                        && checkNum(str.charAt(2)) && checkNum(str.charAt(3))                        && (str.charAt(4) == '-') && checkNum(str.charAt(5))                        && checkNum(str.charAt(6)) && (str.charAt(7) == '-')                        && checkNum(str.charAt(8)) && checkNum(str.charAt(9)))                    return true;                return false;            }                    public static void main(String args[]) {                String str;                int year = 0;                int month = 0;                int day = 0;                Scanner scanner = new Scanner(System.in);                while ((str = scanner.nextLine()) != null) {                    int flag = 1;                    if (!checkString(str)) {                        flag = 0;                        System.out.println("您输入的日期格式不符合要求" + "\n");                    } else {                        // 计算年月日                        year = (str.charAt(0) - '0') * 1000 + (str.charAt(1) - '0')                                * 100 + (str.charAt(2) - '0') * 10                                + (str.charAt(3) - '0');                        month = (str.charAt(5) - '0') * 10 + (str.charAt(6) - '0');                        day = (str.charAt(8) - '0') * 10 + (str.charAt(9) - '0');                        // 每个月的天数不一样,分类讨论                        if (month == 1 || month == 3 || month == 5 || month == 7                                || month == 8 || month == 10 || month == 12) {                            if (day >= 1 && day <= 31) {                                day += 2;                                if (day > 31) { // 已经跨月了                                    month += 1;                                    day -= 31;                                }                                if (month > 12) { // 后两天跨年了                                    year += 1;                                    month = 1;                                }                            } else {                                flag = 0;                                System.out.println("您输入的日期不存在" + "\n");                            }                        } else if (month == 4 || month == 6 || month == 9                                || month == 11) {                            if (day >= 1 && day <= 30) {                                day += 2;                                if (day > 30) {                                    month += 1;                                    day -= 30;                                }                                if (month > 12) {                                    year += 1;                                    month = 1;                                }                            } else {                                flag = 0;                                System.out.println("您输入的日期不存在" + "\n");                            }                        } else if (month == 2) {                            if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {                                // 如果为闰年                                if (day >= 1 && day <= 29) {                                    day += 2;                                    if (day > 29) {                                        month += 1;                                        day -= 29;                                    }                                    if (month > 12) {                                        year += 1;                                        month = 1;                                    }                                } else {                                    flag = 0;                                    System.out.println("您输入的日期不存在" + "\n");                                }                            } else {// 平年                                if (day >= 1 && day <= 28) {                                    day += 2;                                    if (day > 28) {                                        month += 1;                                        day -= 28;                                    }                                    if (month > 12) {                                        year += 1;                                        month = 1;                                    }                                } else {                                    flag = 0;                                    System.out.println("您输入的日期不存在" + "\n");                                }                            }                        } else {                            flag = 0;                            System.out.println("您输入的月份不存在" + "\n");                        }                    }                    if (flag == 1) { // 通过flag标志输入的日期是否合法                        System.out.println("后天的日期为: " + year + "年" + month + "月" + day                                + "日" + "\n");                    }                }            }        }