判断生日

本博客提供了一个简单的C#程序,用于计算用户输入的生日与当前日期之间的天数,并判断该年份是否为闰年。程序包括闰年的特殊判断,以及对输入错误的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          try
            {
                Console.Write("请输入您的生日");
                DateTime a = DateTime.Parse(Console.ReadLine());//闰年限定
                DateTime b = DateTime.Today;

                int ayear = a.Year;
                int amonth = a.Month;
                int aday = a.Day;
                int byear = b.Year;

                TimeSpan c = a - b;

                Console.WriteLine(c.TotalDays);

                int d = (int)c.TotalDays;
                int e = d % 365;
                Console.WriteLine(e);
                
                    Console.WriteLine("您的生日是今年的第" + a.DayOfYear + "");
                    if (byear % 4 != 0 && byear % 400!=0)
              {
                    if (c.TotalDays < 0 && e!=0)
                    {
                        Console.WriteLine("今年您的生日已经过了" + "距离您下个生日还有" + (e + 365) + "");
                    }
                    if (c.TotalDays > 0)
                    {
                        Console.WriteLine("距离您今年过生日还有" + c.TotalDays + "");
                    }
                    if (e == 0)//不执行
                    {
                        Console.WriteLine("祝您生日快乐");
                    }
          }
                else
                    Console.WriteLine("今年没有您的生日哦,请期待下一个闰年吧");
            }
            catch
            { Console.WriteLine("抱歉,您输入错误"); }

            Console.ReadLine();

 

转载于:https://www.cnblogs.com/nwj-0613/p/4712487.html

### Java 判断输入日期是否为生日 在Java中,可以通过`Scanner`类获取用户输入的日期,并将其与当前日期进行比较来判断输入的日期是否为用户的生日。以下是实现这一功能的具体代码示例: ```java import java.time.LocalDate; import java.time.MonthDay; import java.util.Scanner; public class BirthdayChecker { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入您的生日(格式:MMDD,例如0609):"); String inputDate = scanner.nextLine(); // 检查输入格式是否正确 if (inputDate.length() != 4 || !inputDate.matches("\\d{4}")) { System.out.println("输入格式错误,请输入正确的日期格式(MMDD)!"); return; } int month = Integer.parseInt(inputDate.substring(0, 2)); int day = Integer.parseInt(inputDate.substring(2, 4)); // 创建MonthDay对象表示生日 try { MonthDay birthday = MonthDay.of(month, day); // 获取当前日期并转换为MonthDay LocalDate today = LocalDate.now(); MonthDay currentMonthDay = MonthDay.from(today); // 判断是否为生日 if (birthday.equals(currentMonthDay)) { System.out.println("今天是您的生日!祝您生日快乐!"); } else { System.out.println("今天不是您的生日!"); } } catch (Exception e) { System.out.println("输入的日期无效,请检查后重新输入!"); } } } ``` 上述代码实现了以下功能: 1. 使用`Scanner`类获取用户输入的生日[^2]。 2. 验证输入的格式是否符合`MMDD`的要求[^3]。 3. 将输入的日期转换为`MonthDay`对象,并与当前日期的`MonthDay`进行比较[^4]。 4. 根据比较结果输出是否为生日的信息。 #### 注意事项 - 输入的日期格式必须为`MMDD`,例如`0609`表示6月9日。 - 如果输入的日期无效或格式不正确,程序会提示用户重新输入。 - 使用`java.time.MonthDay`类可以忽略年份,仅比较月份和日期[^5]。 ### 星座判断扩展 如果需要进一步扩展功能以判断星座,可以参考以下代码片段: ```java public static String getZodiacSign(int month, int day) { if ((month == 3 && day >= 21) || (month == 4 && day <= 20)) { return "白羊座"; } else if ((month == 4 && day >= 21) || (month == 5 && day <= 21)) { return "金牛座"; } else if ((month == 5 && day >= 22) || (month == 6 && day <= 21)) { return "双子座"; } else if ((month == 6 && day >= 22) || (month == 7 && day <= 22)) { return "巨蟹座"; } else if ((month == 7 && day >= 23) || (month == 8 && day <= 23)) { return "狮子座"; } else if ((month == 8 && day >= 24) || (month == 9 && day <= 23)) { return "处女座"; } else if ((month == 9 && day >= 24) || (month == 10 && day <= 23)) { return "天秤座"; } else if ((month == 10 && day >= 24) || (month == 11 && day <= 22)) { return "天蝎座"; } else if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) { return "射手座"; } else if ((month == 12 && day >= 22) || (month == 1 && day <= 20)) { return "摩羯座"; } else if ((month == 1 && day >= 21) || (month == 2 && day <= 19)) { return "水瓶座"; } else if ((month == 2 && day >= 20) || (month == 3 && day <= 20)) { return "双鱼座"; } return "未知星座"; } ``` 此方法可以根据输入的月份和日期返回对应的星座名称[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值