使用JAVA做一个1800年到2100年带有农历节气的万年历

使用JAVA做一个1800年到2100年带有农历节气的万年历,第1张

你可以用一份用于C语言的数据得到,Java和C语言有相似处,数据也是可以通用的。

我这里有一个数据提取工具,可以提取范围从公元1600年到公元6400年之间的四千八百年之间的任意年份区间的数据,非常好用,算法也有源代码。

//农历月份信息。一年用3个字节表示

//+-------------------------------------------------------------------------+

//| 第23位 |        第22-17位       |  第16-13位 |         第12-0位         |

//|--------+------------------------+------------+--------------------------|

//|  保留  | 农历正月初一的年内序数 |    闰月    | 一个比特对应一个月份大小 |

//+-------------------------------------------------------------------------+

//月份大小数据是月份小的在低位,月份大的在高位,即正月在最低位。

//以1900年为例,3个字节的数据展开成二进制位:

//  0       011110        1000                     1 0 1 1 0 1 1 0 1 0 0 1 0

//保留  1月31日(春节)  闰八月   从左往右依次十二月,十一月……闰八月、八月、七月……正月的天数

//农历月份对应的位为0,表示这个月为29天(小月),为1表示有30天(大月)。

0x58,0x0B,0xA5,0x42,0x0B,0x49,0x2C,0x5A,0x93,0x52,0x0A,0x95,0x3D,0x35,0x2D, //1600-1604

 0x60,0x05,0x56,0x4A,0x0A,0xB5,0x36,0xD5,0xAA,0x5C,0x05,0xD2,0x44,0x0D,0xA5, //1605-1609

 0x30,0x7D,0x4A,0x56,0x0D,0x4A,0x41,0x6A,0x95,0x62,0x0A,0x97,0x4E,0x05,0x56, //1610-1614

 0x39,0x0A,0xB5,0x5E,0x0A,0xD9,0x48,0x06,0xD2,0x32,0x8E,0xA5,0x58,0x0F,0x25, //1615-1619

 0x44,0x06,0x4A,0x2A,0x4C,0x97,0x50,0x0A,0xAB,0x3D,0x55,0x5A,0x62,0x05,0x6A, //1620-1624

 0x4A,0x0B,0x69,0x36,0xD7,0x52,0x5C,0x07,0x92,0x46,0x0B,0x25,0x2E,0x96,0x4B, //1625-1629

 ……

你用用看吧,应该能用的。

Java获得当前年月日并赋值给变量,主要是使用java 提供的工具类Calendar,Date来获取,如下代码:

package comob;  

  

import javatextParseException;  

import javatextSimpleDateFormat;  

import javautilCalendar;  

import javautilDate;  

  

public class DateTest {  

  

    public static void main(String[] args) throws ParseException {  

        Calendar now = CalendargetInstance();  

        Systemoutprintln("年: " + nowget(CalendarYEAR));  

        Systemoutprintln("月: " + (nowget(CalendarMONTH) + 1) + "");  

        Systemoutprintln("日: " + nowget(CalendarDAY_OF_MONTH));  

        Systemoutprintln("时: " + nowget(CalendarHOUR_OF_DAY));  

        Systemoutprintln("分: " + nowget(CalendarMINUTE));  

        Systemoutprintln("秒: " + nowget(CalendarSECOND));  

        Systemoutprintln("当前时间毫秒数:" + nowgetTimeInMillis());  

        Systemoutprintln(nowgetTime());  

  

        Date d = new Date();  

        Systemoutprintln(d);  

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  

        String dateNowStr = sdfformat(d);  

        Systemoutprintln("格式化后的日期:" + dateNowStr);  

          

        String str = "2012-1-13 17:26:33";  //要跟上面sdf定义的格式一样  

        Date today = sdfparse(str);  

        Systemoutprintln("字符串转成日期:" + today);  

    }  

}

输出结果:

年: 2012

月: 1

日: 13

时: 17

分: 28

秒: 19

当前时间毫秒数:1326446899902

Fri Jan 13 17:28:19 CST 2012

Fri Jan 13 17:28:19 CST 2012

格式化后的日期:2012-01-13 17:28:19

字符串转成日期:Fri Jan 13 17:26:33 CST 2012

可以使用javautilCalendar来取得相关日期信息,下面给个示例供参考:

Java代码:

import javatextParseException;

import javatextSimpleDateFormat;

import javautilCalendar;

public class DateDemo {

static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String[] args) throws ParseException {

String date = "2011-04-25 22:28:30";

Systemoutprintln(date);

Systemoutprintln("年份:" + getYear(date));

Systemoutprintln("月份:" + getMonth(date));

Systemoutprintln("日期:" + getDay(date));

Systemoutprintln("月初日期是: " + getMinMonthDate(date));

Systemoutprintln("月末日期是: " + getMaxMonthDate(date));

}

/

获取日期年份

@param date

@return

@throws ParseException

/

public static int getYear(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

return calendarget(CalendarYEAR);

}

/

获取日期月份

@param date

@return

@throws ParseException

/

public static int getMonth(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

return (calendarget(CalendarMONTH) + 1);

}

/

获取日期号

@param date

@return

@throws ParseException

/

public static int getDay(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

return calendarget(CalendarDAY_OF_MONTH);

}

/

获取月份起始日期

@param date

@return

@throws ParseException

/

public static String getMinMonthDate(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

calendarset(CalendarDAY_OF_MONTH, calendargetActualMinimum(CalendarDAY_OF_MONTH));

return dateFormatformat(calendargetTime());

}

/

获取月份最后日期

@param date

@return

@throws ParseException

/

public static String getMaxMonthDate(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

calendarset(CalendarDAY_OF_MONTH, calendargetActualMaximum(CalendarDAY_OF_MONTH));

return dateFormatformat(calendargetTime());

}

}

获取的是阳历,补充一点,一般都是用阳历的

阳历也叫公历,来源于西方。比如算星座时、就是按照阳历(公历)计算的。

阴历也叫农历,来源于我们中国。

比如我们俗称的八月十五中秋节、清明节、七夕、春节、就是按照农历来计算的。而元旦、和西方的情人节(214)和圣诞节、国庆节、建军节、党的生日、都是按照公历来计算的。

他们的主要区别就在于阳历是国际通用的,而农历是我们中国特有的。

编程语言是国外的,怎么可能用来获取我们中国特有的时间呢

以上就是关于使用JAVA做一个1800年到2100年带有农历节气的万年历全部的内容,包括:使用JAVA做一个1800年到2100年带有农历节气的万年历、java怎么获得当前年月日并赋给变量、如何用java去 *** 作“日期”函数,取得月初和月末等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9667250.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存