根据输入的日期计算活了多少天

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 * 编写一个程序
 * 用户输入自己的生日,格式:yyyy-MM-dd
 * 然后提示用户到今天为止已经活了多少天
 * @author huawangxin
 *
 */
public class Test {
	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String ars[]) throws ParseException{
		/*
		 *1:用户输入一个生日的字符串
		 *2:将字符串转换为Date
		 *3:创建一个Date表示今天的时间
		 *4:今天的毫秒减去生日的毫秒,计算出活了多少毫秒
		 *5:将毫秒转换为天
		 *6:输出
		 * 
		 */
		System.out.println("请输入您的生日:yyyy-MM-dd");
		Scanner scaner=new Scanner(System.in);
		String birStr=scaner.nextLine();
		String regex="\\d{4}-\\d{2}-\\d{2}";
			if(birStr.matches(regex)){
				//将用户输入的生日转换成Date
				String format="yyyy-MM-dd";
				SimpleDateFormat sdf=new SimpleDateFormat(format);
				Date birthday=sdf.parse(birStr);
				Date now=new Date();
				long sum=now.getTime()-birthday.getTime();
				long days=sum/1000/60/60/24;
//				long sum1=now.getYear()-birthday.getYear();
				System.out.println("恭喜您活了 "+days+"天!     继续加油");
//				System.out.println("恭喜您活了 "+sum1+"年!     继续加油");
			}else {
				System.out.println("输入的生日格式不对!");
				
			}
		
		
		
	}

}

【如果有不正确的地方,欢迎大家批评指正,谢谢】

在C语言中,计算一个人了多少可以通过编写一个程序来实现。这个程序需要计算从一个人的出生日期到当前日期数差。以下是实现这一功能的基本步骤: 1. 获取用户的出生日期和当前日期。 2. 将两个日期转换为统一的格式,例如“年月日”。 3. 计算年份差、月份差和日期差。 4. 考虑闰年对数的影响,因为闰年有366而不是平年的365。 5. 计算两个日期之间总的数差。 下面是一个简单的C语言程序示例,用于计算了多少: ```c #include <stdio.h> // 判断是否为闰年 int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 每个月的数,注意二月份会根据是否为闰年来确定 int getDaysOfMonth(int year, int month) { int daysOfMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (month == 2 && isLeapYear(year)) { return 29; } return daysOfMonth[month - 1]; } // 计算两个日期之间的数差 int calculateDays прожито(int birthYear, int birthMonth, int birthDay, int currentYear, int currentMonth, int currentDay) { int days прожито = 0; for (int year = birthYear; year < currentYear; year++) { days прожито += isLeapYear(year) ? 366 : 365; } // 计算当前年份的数差 for (int month = birthMonth; month < currentMonth; month++) { days прожито += getDaysOfMonth(currentYear, month); } // 加上当前月份的数差 days прожито += currentDay; // 如果出生月份还没到,需要减去当年的数 if (birthMonth > currentMonth) { for (int month = currentMonth + 1; month < birthMonth; month++) { days прожито -= getDaysOfMonth(currentYear, month); } days прожито -= birthDay; } else if (birthMonth == currentMonth) { // 如果出生月份和当前月份相同,还需要减去出生的日期 days прожито -= birthDay; } return days прожито; } int main() { int birthYear, birthMonth, birthDay; int currentYear, currentMonth, currentDay; // 获取用户输入的出生日期 printf("请输入你的出生年份: "); scanf("%d", &birthYear); printf("请输入你的出生月份: "); scanf("%d", &birthMonth); printf("请输入你的出生日期: "); scanf("%d", &birthDay); // 获取当前日期 currentYear = 2023; // 假设当前年份为2023 currentMonth = 4; // 假设当前月份为4 currentDay = 1; // 假设当前日期为1 // 计算并输出了多少 int days = calculateDays прожито(birthYear, birthMonth, birthDay, currentYear, currentMonth, currentDay); printf("你已经了 %d 。\n", days); return 0; } ``` 这个程序是一个简化的版本,它假设当前年份为2023年,当前月份和日期为代码中的固定值。在实际应用中,你可能需要动态获取当前日期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值