在java中,根据年龄,计算出生年份。比如:23岁,1990年出生

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中,根据年龄,计算出生年份。比如:23岁,1990年出生相关的知识,希望对你有一定的参考价值。

这个得用Calendar类
首先获取现在的日期 Calendar mycalendar=Calendar.getInstance();//获取现在时间
String 年=String.valueOf(mycalendar.get(Calendar.YEAR));//获取年份
// 用文本框输入年龄
int age=text1.getText().parseInt();
int birth=年.parseInt()-age;
System.out.println("birth"年出生);
参考技术A import java.util.*;
import java.text.*;
public class Demo
public static void main(String[] args)
SimpleDateFormat format = new SimpleDateFormat("yyyy");
int year=0;
System.out.print("请输入你的年龄,比如(1980):");
Scanner scan=new Scanner(System.in);
if(scan.hasNext())
year=scan.nextInt();
System.out.println(Integer.parseInt(format.format(new Date()))-year);


参考技术B package com.wc.day;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class test
public static void main(String[] args)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
System.out.print("请输入你的年龄:");
Scanner scan=new Scanner(System.in);
int age=scan.nextInt();
int year=Integer.parseInt(sdf.format(new Date()))-age;
System.out.println("你的出生年份为:"+year+"年");

参考技术C 那个很简单啊,先得到系统当前时间,再减去年龄就行了啊

如何计算年龄是不是在出生年份的范围内,同时从Django ORM中的Db获取出生年份

【中文标题】如何计算年龄是不是在出生年份的范围内,同时从Django ORM中的Db获取出生年份【英文标题】:How to calculate if age is in range from the birth year ,while fetching the birth year from Db in Django ORM如何计算年龄是否在出生年份的范围内,同时从Django ORM中的Db获取出生年份 【发布时间】:2016-04-18 18:26:19 【问题描述】:

我有一个由 id、姓名和出生年份组成的模型。我想查询这个模型以获取名称,使年龄在一个范围之间。

目前,我尝试的是

queryset= Employees.objects.all()

对于每个名字我计算年龄:

now = datetime.datetime.now()
age=now.year-q.birth_year
ids=[]
if 25<age<36 :
   ids.append(q.id)

然后, 我用 id 再次查询 Employees.objects.filter(id__in=ids)

我可以在一个查询中完成所有这些吗?

Employees.objects.filter(**Calculate age and compare if it is in the range) 

范围可以是动态的。我有两个变量 minAge 和 maxAge 的范围。

任何帮助。

【问题讨论】:

哥们,你把year放在relativedelta对象上,应该是age_from = (today - relativedelta(years=25)).year 【参考方案1】:

你可能想用dateutil中的relativedelta,计算时间更方便:

import datetime
from dateutil.relativedelta import relativedelta

today = datetime.date.today()
age_25 = (today - relativedelta(years=25)).year
age_36 = (today - relativedelta(years=36)).year
Employees.objects.filter(birth_year__lte=age_25, birth_year__gte=36)

age_25 是 25 年前,age_36 是 36 年前,您只需查询人们的生日在 25 到 36 年前之间。

对于ltegte,请查看django doc 了解详情。

编辑

其实django orm是支持range查询的,那么就这样做吧:

Employees.objects.filter(birth_year__range=[age_36, age_25])

【讨论】:

你能解释一下它是如何工作的吗?我会试试这个,看看它是如何工作的。 我做了一些修改,你可能需要安装 dateutil。 pip install python-dateutil 谢谢。这对我来说是新事物。我会尝试理解这一点。 这并不难理解。 2016年,1991年出生25岁,1980年出生36岁,只要查询[1980, 1991]之间的出生年份即可。 是的,我实现了这个。非常感谢。

以上是关于在java中,根据年龄,计算出生年份。比如:23岁,1990年出生的主要内容,如果未能解决你的问题,请参考以下文章

oracle根据出生日期算年龄

怎样用生日算年龄

根据出生年份计算年龄的公式,如何根据出生日期求年龄?

怎么算自己是几岁呢?

出生日期,根据出生日期怎么算年龄?

SQL 中怎么根据出生日期算出年龄 然后用年龄查询