儒略日.公历年月日之间的转换以及儒略日的应用

一、 作业要求

编写程序实现以下任务:

1.1由公历年月日化为儒略日

1.2由儒略日转化为公历年月日

1.3儒略日的应用

1.3.1计算两个日期间的间隔天数

1.3.2计算星期几

1.3.3计算年积日(DOY)

1.3.4由年积日计算年月日

二、 程序设计

2.1 窗体设计

2.2 代码实现

2.2.1由公历年月日化为儒略日

//由公历年月日转化为儒略日的函数

publicdouble GLToJD(double Y, double M, double D)

{

double JDtime;

JDtime = 367 * Y - Math .Truncate(7 * (Y + Math .Truncate((M + 9) / 12)) / 4) + Math .Truncate(275

* M / 9) + D + 1721013.5;

return JDtime;

}

2.2.2由儒略日转化为公历年月日

//由儒略日转化为公历年月日的函数

publicvoid JDToGL(double JDtime, outdouble Y, outdouble M, outdouble D)

{

double a, b, c, d, e;

a = Math .Truncate(JDtime + 0.5);

b = a + 1537;

c = Math .Truncate((b - 122.1) / 365.25);

d = Math .Truncate(365.25 * c);

e = Math .Truncate((b-d)/30.6001);

D=b-d-Math .Truncate (30.6001*e)+JDtime+0.5- Convert .ToInt32(JDtime+0.5); M = e - 1 - Math .Truncate(e / 14) * 12;

Y = c - 4715 - Math .Truncate((7 + M) / 10);

}

2.2.3 计算两个日期间的间隔天数

privatevoid JGTSbutton_Click(object sender, EventArgs e)

{

double JDtime1, JDtime2,Y1,M1,D1,Y2,M2,D2,JGTS;

if (Year31.Text == "" || Month31.Text == "" || Day31.Text == "" || Year31.Text == "" ||

Month31.Text == "" || Day31.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

Y1 = double .Parse(Year31.Text);

M1 = double .Parse(Month31.Text);

D1 = double .Parse(Day31.Text);

JDtime1 = GLToJD(Y1, M1, D1);

Y2 = double .Parse(Year32.Text);

M2 = double .Parse(Month32.Text);

D2 = double .Parse(Day32.Text);

JDtime2 = GLToJD(Y2, M2, D2);

JGTS = Math .Abs(JDtime2 - JDtime1);

JG.Text = JGTS.ToString();

}

}

2.2.4 计算星期几

privatevoid XQbutton_Click(object sender, EventArgs e)

{

double JDtime,Y,M,D, XQ;

if (Year4.Text == "" || Month4.Text == "" || Day4.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

Y = double .Parse(Year4.Text);

M = double .Parse(Month4.Text);

D = double .Parse(Day4.Text);

JDtime = GLToJD(Y, M, D);

XQ = (JDtime + 1.5) % 7;

if (XQ == 0)

{

weekDay.Text = " 星期日" ;

}

if (XQ == 1)

{

weekDay.Text = " 星期一" ;

}

if (XQ == 2)

{

weekDay.Text = " 星期二" ;

}

if (XQ == 3)

{

weekDay.Text = " 星期三" ;

}

if (XQ == 4)

{

weekDay.Text = " 星期四" ;

}

if (XQ == 5)

{

weekDay.Text = " 星期五" ;

}

if (XQ == 6)

{

weekDay.Text = " 星期六" ;

}

}

}

2.2.5 计算年积日

privatevoid NJRbutton_Click(object sender, EventArgs e)

{

double Y,M,D,JDtime1,JDtime2;

if (Year5.Text == "" || Month5.Text == "" || Day5.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

Y = double .Parse(Year5.Text);

M = double .Parse(Month5.Text);

D = double .Parse(Day5.Text);

JDtime1 = GLToJD(Y,M-1,D);

JDtime2 = GLToJD(Y,0,0 );

NJR1.Text = (JDtime1-JDtime2).ToString();

}

}

2.2.6 由年积日计算年月日

privatevoid NJRTONYRbutton_Click(object sender, EventArgs e)

{

double JDtime, Y1, Y, M, D,NJR;

if (Year6.Text == "" || NJR2.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

NJR = double .Parse(NJR2.Text);

Y1 = double .Parse(Year6.Text);

JDtime = GLToJD(Y1, 0, 0) + NJR+30;

JDToGL(JDtime ,out Y, out M, out D);

textBox1.Text = JDtime.ToString ();

GLNYR.Text = Y.ToString() + " 年" + M.ToString() + " 月" + D.ToString() + " 日" ; }

}

2.3 运行结果

一、 作业要求

编写程序实现以下任务:

1.1由公历年月日化为儒略日

1.2由儒略日转化为公历年月日

1.3儒略日的应用

1.3.1计算两个日期间的间隔天数

1.3.2计算星期几

1.3.3计算年积日(DOY)

1.3.4由年积日计算年月日

二、 程序设计

2.1 窗体设计

2.2 代码实现

2.2.1由公历年月日化为儒略日

//由公历年月日转化为儒略日的函数

publicdouble GLToJD(double Y, double M, double D)

{

double JDtime;

JDtime = 367 * Y - Math .Truncate(7 * (Y + Math .Truncate((M + 9) / 12)) / 4) + Math .Truncate(275

* M / 9) + D + 1721013.5;

return JDtime;

}

2.2.2由儒略日转化为公历年月日

//由儒略日转化为公历年月日的函数

publicvoid JDToGL(double JDtime, outdouble Y, outdouble M, outdouble D)

{

double a, b, c, d, e;

a = Math .Truncate(JDtime + 0.5);

b = a + 1537;

c = Math .Truncate((b - 122.1) / 365.25);

d = Math .Truncate(365.25 * c);

e = Math .Truncate((b-d)/30.6001);

D=b-d-Math .Truncate (30.6001*e)+JDtime+0.5- Convert .ToInt32(JDtime+0.5); M = e - 1 - Math .Truncate(e / 14) * 12;

Y = c - 4715 - Math .Truncate((7 + M) / 10);

}

2.2.3 计算两个日期间的间隔天数

privatevoid JGTSbutton_Click(object sender, EventArgs e)

{

double JDtime1, JDtime2,Y1,M1,D1,Y2,M2,D2,JGTS;

if (Year31.Text == "" || Month31.Text == "" || Day31.Text == "" || Year31.Text == "" ||

Month31.Text == "" || Day31.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

Y1 = double .Parse(Year31.Text);

M1 = double .Parse(Month31.Text);

D1 = double .Parse(Day31.Text);

JDtime1 = GLToJD(Y1, M1, D1);

Y2 = double .Parse(Year32.Text);

M2 = double .Parse(Month32.Text);

D2 = double .Parse(Day32.Text);

JDtime2 = GLToJD(Y2, M2, D2);

JGTS = Math .Abs(JDtime2 - JDtime1);

JG.Text = JGTS.ToString();

}

}

2.2.4 计算星期几

privatevoid XQbutton_Click(object sender, EventArgs e)

{

double JDtime,Y,M,D, XQ;

if (Year4.Text == "" || Month4.Text == "" || Day4.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

Y = double .Parse(Year4.Text);

M = double .Parse(Month4.Text);

D = double .Parse(Day4.Text);

JDtime = GLToJD(Y, M, D);

XQ = (JDtime + 1.5) % 7;

if (XQ == 0)

{

weekDay.Text = " 星期日" ;

}

if (XQ == 1)

{

weekDay.Text = " 星期一" ;

}

if (XQ == 2)

{

weekDay.Text = " 星期二" ;

}

if (XQ == 3)

{

weekDay.Text = " 星期三" ;

}

if (XQ == 4)

{

weekDay.Text = " 星期四" ;

}

if (XQ == 5)

{

weekDay.Text = " 星期五" ;

}

if (XQ == 6)

{

weekDay.Text = " 星期六" ;

}

}

}

2.2.5 计算年积日

privatevoid NJRbutton_Click(object sender, EventArgs e)

{

double Y,M,D,JDtime1,JDtime2;

if (Year5.Text == "" || Month5.Text == "" || Day5.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

Y = double .Parse(Year5.Text);

M = double .Parse(Month5.Text);

D = double .Parse(Day5.Text);

JDtime1 = GLToJD(Y,M-1,D);

JDtime2 = GLToJD(Y,0,0 );

NJR1.Text = (JDtime1-JDtime2).ToString();

}

}

2.2.6 由年积日计算年月日

privatevoid NJRTONYRbutton_Click(object sender, EventArgs e)

{

double JDtime, Y1, Y, M, D,NJR;

if (Year6.Text == "" || NJR2.Text == "" )

{

MessageBox .Show(" 输入的日期不能为空!" );

}

else

{

NJR = double .Parse(NJR2.Text);

Y1 = double .Parse(Year6.Text);

JDtime = GLToJD(Y1, 0, 0) + NJR+30;

JDToGL(JDtime ,out Y, out M, out D);

textBox1.Text = JDtime.ToString ();

GLNYR.Text = Y.ToString() + " 年" + M.ToString() + " 月" + D.ToString() + " 日" ; }

}

2.3 运行结果


相关文章

  • 阳历到阴历的转换
  • /*************************************************************************************************** 哈尔滨市闲人无事发呆有限公司 鼓 捣 ...查看


  • 属牛人2017年每月运势
  • 点此了解[如何识别假开光?并详细了解属牛人2017年每月运势] 属牛人2017年每月运势由数十位易学大师,根据易经原理,共同商讨和钻研提出一套关于属牛人2017年每月运势和运势的详解,中国福缘阁在这里奉献给大家. 介绍关于属牛人2017年每 ...查看


  • 北师大版三年级上册数学年月日
  • <年月日>教学设计 教学内容: 北师大版小学数学三年级上册第七单元70-71页,年.月.日的认识. 教学目标 1. 结合学生的生活经验,认识年.月.日,了解它们之间的关系:通过学习.交流掌握每个月天数的记法. 2.3.培养学生收 ...查看


  • 八字基础知识 1
  • 八字基础知识 天干地支 天干地支简称干支,是中国古代用来计算历法的一套符号,其中天干有十干:甲乙丙丁戊己庚辛壬癸:地支有十二支:子丑寅卯辰巳午未申酉戌亥.天干与地支结合起来组成六十位干支,也称六十花甲如下表. 二.阴阳五行 阴阳五行是中国古 ...查看


  • 1989年属蛇的人2017年运势
  • 点此了解[如何识别假开光?并详细了解1989年属蛇人的2017年运势和运程] 1989年属蛇的人2017年运程和运势详解: 一九八九年出生的属蛇朋友,二零一七年是食神星入命,事业前途有新的发展,并且太岁生身,外来助力贵人运亦好,必须好好把握 ...查看


  • 2016年4月剖腹产吉日
  • 2016年4月剖腹产吉日 木林易/作 剖腹产择吉日吉时,不能按 照黄历的黄道吉日 刨腹产吉日.有些人以民 俗的讲法选剖宫产择吉日, 有的人看黄历的黄道吉日, 也有谐音或以369.258来选男女孩日子等来,或根据民俗选,实际上都是错误的,只可 ...查看


  • 带高中简历的大学生入党申请书
  • 片区: 学号: 年月日 入党申请书虽然没有固定的书写格式,但应当包括以下基本内容: (1)标题.标题为"入党申请书". (2)称呼.敬爱的党组织. (3)正文.一般包括以下内容:①对党的认识.党的性质.宗旨.指导思想.最 ...查看


  • 属羊人2018年运势
  • 属羊人2018年运势及运程完整版 羊年出生的年份:1943年.1955年.1967年.1979年.1991年.2003年 生肖属羊人刚度过了一个不太顺利的年份,凶星在事业和财政上造成了重大破坏,难免既沮丧又气馁,希望能自强不息.发愤图强,安 ...查看


  • 小学暑期支教教案三年级第六课年.月.日
  • 数学教案 教学时间:7 月 27 号 课目 教学 目标 教学 重点 教学 难点 教学 准备 学生 分析 教材 分析 教学 要求 学生可能对年.月.日的掌握情况有差异,因此在进行新内容的传授时,要对前面学过得内容进行 复习和熟悉. 本节课时是 ...查看


热门内容