有关日期算法的问题 -- 具体要求看内容

a11377815 2008-02-13 11:40:38
找出计算年龄的最佳算法。

要求:
1.精确到天,比如出生年月是2/18/2000,2/17/2008的时候年龄是7岁,而不是8岁。
2 返回数字型年龄
3 返回字符串,4岁以下的返回月,例如10 months,4岁以上的返回年,如 65 years
4 注意每个月的天数区别,闰年也要考虑
5 用sql, c#, asp, javascript, java 5种语言实现同样的算法,确保整个系统都可以用。

...全文
201 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
truenetercobra 2009-04-04
  • 打赏
  • 举报
回复
cat_hsfz 2008-02-14
  • 打赏
  • 举报
回复
没什么难度的问题啊,思维慎密一些的人能够一次写好,不行的话就先写一堆unit test的test case辅助咯。你想要思路的话,用Reflector看DateTime的operator -运算,因为你所说的功能DateTime配合TimeSpan都能实现,你参考DateTime的源代码就是了。
WNASP 2008-02-14
  • 打赏
  • 举报
回复
写一个过程函数,没有什么难度,只觉得搂住有点懒,其实没有多少逻辑
haomas 2008-02-14
  • 打赏
  • 举报
回复
什么变态的需求。。
frankworld 2008-02-14
  • 打赏
  • 举报
回复
同意ls的意见

而且如果需求发生变化,需要修改所有的实现,很容易出现一些莫名其妙的错误
vrhero 2008-02-14
  • 打赏
  • 举报
回复
用sql, c#, asp, javascript, java 5种语言实现同样的算法,确保整个系统都可以用。
----------
纯属吃饱了撑的。

ps:看上去像家庭作业...
syeerzy 2008-02-14
  • 打赏
  • 举报
回复
C#写个WebService, 然后javascript可以调用,java可以调用,ASP可以调用,C#更加可以调用~~~ 这样就4种都有了,何必实现4份呢?


至于WebService里面实现那就简单了,求TimeSpan的 TotalMonth, 如果小于48就直接输出月,否则输出TotalYear ,然后格式化字符串。搞定~~

保证精确到秒都行了。。。。而且闰年闰月全考虑到了。。。




剩下最后一个问题,Sql的, 很简单,不要实现,数据库就干数据库的事情,如果你系统里有需要数据库做这件事情的,说明设计有问题,修改设计。
frankworld 2008-02-14
  • 打赏
  • 举报
回复
哪有那么麻烦?这么简单的问题搞得很高难度似的。
给你一段C#的算年龄的代码

DateTime dt = new DateTime(2006, 2, 14);
int age = DateTime.Now.Year - dt.Year;
if (dt.AddYears(age) > DateTime.Now)
{
age--;
}
Console.WriteLine(age.ToString());

if (age < 4)
{
int month = DateTime.Now.Month - dt.Month;
if (dt.Day > DateTime.Now.Day)
{
month--;
}

if (month < 0)
{
month += 12;
}

month += age * 12;
Console.WriteLine(month.ToString() + " months");
}
a11377815 2008-02-14
  • 打赏
  • 举报
回复
asp的写法不懂,sql也不是很懂
deepinnet 2008-02-14
  • 打赏
  • 举报
回复
学习
shanyinl 2008-02-14
  • 打赏
  • 举报
回复
这个逻辑不行吗?主要就是天的精确,别的都没啥了就,有人真的用润年算生日马?
shanyinl 2008-02-14
  • 打赏
  • 举报
回复
你看看这样整,如果当前月日小于生日月日,那么生日年份+1,然后再用当前年份-生日年份,不就是年龄了吗?
kbryant 2008-02-14
  • 打赏
  • 举报
回复
oo
rangeon 2008-02-14
  • 打赏
  • 举报
回复
gz
Ivony 2008-02-14
  • 打赏
  • 举报
回复
纯属吃饱了撑的。
LutzMark 2008-02-14
  • 打赏
  • 举报
回复
asp不能算语言...

SQL函数比较简单

先帮顶
wangping_li 2008-02-14
  • 打赏
  • 举报
回复
mark...
winner2050 2008-02-14
  • 打赏
  • 举报
回复
算年龄有点实际问题要考虑。

lz算年龄精确到天,太书呆子了。

实际社会中说年龄,有时候用生日,有时候用元旦,有时候用春节,作断年份。

只有小孩才有“3岁半、5岁半”这种说法,大人报告年龄都是整数。
liuyun1987 2008-02-13
  • 打赏
  • 举报
回复
有很大难度写出这样的SQL语句,你去问一下皱建
xiaoqhuang 2008-02-13
  • 打赏
  • 举报
回复
闰年?
记忆中阳历没闰年吧,生日按阴历算?
加载更多回复(3)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧