import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class BabyTest {
/**
* @param args
*/
public static void main(String[] args) {
/*Calendar startday=Calendar.getInstance();
startday.set(2013, 4, 2);
Calendar curentday=Calendar.getInstance();
curentday.set(2013, 4, 9);
long disTime=curentday.getTimeInMillis()-startday.getTimeInMillis();
long week=disTime/1000/60/60/24/7;
long day=disTime/1000/60/60/24%7;
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(f.format(startday.getTime()));
System.out.println(f.format(curentday.getTime()));
System.out.println(week);
System.out.println(day);*/
new CountFrame();
}
}
class CountFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 6620283754770070422L;
private SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
public CountFrame() throws HeadlessException {
super();
this.setSize(new Dimension(400,300) );
this.setTitle("孕期计算");
this.draw();
//this.pack();
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void draw() {
this.getContentPane().setLayout(null);
JLabel label1=new JLabel("开始日期:");
label1.setBounds(30, 30, 100, 20);
this.getContentPane().add(label1);
final JTextField date1=new JTextField("2013-05-02");
date1.setBounds(110, 30, 100, 20);
this.getContentPane().add(date1);
JLabel label2=new JLabel("结束日期:");
label2.setBounds(30, 80, 100, 20);
this.getContentPane().add(label2);
Calendar curentday=Calendar.getInstance();
final JTextField date2=new JTextField(format.format(curentday.getTime()));
date2.setBounds(110, 80, 100, 20);
this.getContentPane().add(date2);
JButton btn=new JButton("计算");
btn.setBounds(240, 80, 60, 20);
this.getContentPane().add(btn);
final JTextArea result=new JTextArea();
result.setBounds(30, 130, 300, 100);
this.getContentPane().add(result);
btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
String startdateStr=date1.getText();
String enddateStr=date2.getText();
try {
Calendar startdate=Calendar.getInstance();
startdate.setTime(format.parse(startdateStr));
Calendar enddate=Calendar.getInstance();
enddate.setTime(format.parse(enddateStr));
long disTime=enddate.getTimeInMillis()-startdate.getTimeInMillis();
int distanceDays=(int)(disTime/1000/60/60/24);
int week=distanceDays/7;//间隔几周
int weekDay=distanceDays%7;//间隔整周余下的天数
int dayOfMonth1=startdate.get(Calendar.DAY_OF_MONTH);
int dayOfMonth2=enddate.get(Calendar.DAY_OF_MONTH);
int monthOfYear1=startdate.get(Calendar.MONTH);
int monthOfYear2=enddate.get(Calendar.MONTH);
int month=0;//间隔几个月
int monthDay=0;//间隔整月余下的天数
if(dayOfMonth2>=dayOfMonth1){
if(monthOfYear2>=monthOfYear1){
month=monthOfYear2-monthOfYear1;
}else{
month=monthOfYear2+12-monthOfYear1;
}
monthDay=dayOfMonth2-dayOfMonth1;
}else{
if(monthOfYear2>=monthOfYear1){
month=monthOfYear2-monthOfYear1-1;
}else{
month=monthOfYear2+12-monthOfYear1-1;
}
Calendar tempDate=(Calendar)enddate.clone();
tempDate.set(Calendar.MONTH, monthOfYear2-1);
tempDate.set(Calendar.DAY_OF_MONTH, dayOfMonth1);
long temDisTime=enddate.getTimeInMillis()-tempDate.getTimeInMillis();
monthDay=(int)(temDisTime/1000/60/60/24);
}
result.setText("孕期为:"+week+"周"+weekDay+"天\n "
+month+"月"+monthDay+"天");
} catch (ParseException e) {
e.printStackTrace();
}
}
});
}
}
分享到:
相关推荐
当用户输入怀孕的开始日期,程序会根据日期差值计算出当前怀孕的天数和周数,并依据标准的40周孕期推算出预产期。 在计算怀孕天数时,程序会考虑到每个孕期的40周,即280天,这是基于医学上对正常妊娠期的普遍定义...
"预产期计算小程序"是一款专门用于帮助准父母们计算预产期的便捷工具。它基于医学上的标准算法,能够准确地根据孕妇的末次月经日期推算出预产期,为即将迎来新生命的家庭提供重要的参考信息。 预产期计算在孕产保健...
《手机程序:安全期计算软件详解》 在数字化时代,我们的生活越来越依赖于智能手机,而各种应用程序也成为了手机的核心功能之一。"手机程序 安全期计算软件"是一款专为女性用户设计的实用工具,旨在帮助她们更好地...
在这个资料包中,我们主要关注的是两种机器学习算法——K-最近邻(K-Nearest Neighbors, KNN)和朴素贝叶斯(Naive Bayes),用于预测怀孕相关的数据。这些算法在数据分析和预测任务中非常常见,尤其是对于初学者来...
【怀孕母猪免疫程序流程】 怀孕母猪的免疫程序是保障猪场健康和生产效率的重要环节,它涉及到多个疾病的预防接种,确保母猪和仔猪免受多种疾病的侵害。以下是根据描述中的内容详细阐述的各个疾病及其免疫策略: 1....
这个程序通常会结合用户的月经周期日期,计算出安全期、排卵期和危险期,以帮助她们更好地规划生活和健康决策。 在女性生理周期中,“安全期”是指在月经周期中不太可能受孕的时间段,一般是在月经来潮后的几天到...
"Pregnancy Days Counter"(怀孕天数计数器)就是一个很好的例子,它专为期待新生命的准父母们设计,帮助他们精确地计算怀孕天数,并预测预产期,让孕育过程更加科学、有计划。 首先,我们要理解这个应用的核心功能...
2. 预产期计算:预产期是孕妇预计分娩的日期,通常依据末次月经的第一天加上280天(40周)得出。预产期的准确性对孕期管理和产科医生的决策至关重要。 二、技术实现 1. 时间处理:在编程中,时间的处理是关键。...
这款计算器不仅可以计算怀孕相关的日期,还可能包含了其他与孕育生活相关的多种计算功能,比如宝宝出生体重预测、孕周转换等,旨在为用户提供全面的信息支持。 【什么都可以算的计算器 很准 大家试试看吧】 这款...
【怀孕测算小插件for dvbbs7.0 sp2】是一款专为dvbbs7.0 SP2版本设计的论坛插件,主要用于帮助论坛用户计算预产期和怀孕周期。这款插件集成了科学的孕期计算方法,使得论坛用户在讨论育儿话题时能方便地了解相关孕期...
在怀孕20周的时候一定要及时护理乳房.docx
怀孕了辞职报告写.doc
这种计算对于想要怀孕的夫妻来说是十分重要的,因为了解这些信息能帮助他们更好地规划并提高受孕的成功率。 描述中的“适合想要小宝宝的夫妻使用”,进一步确认了这个工具的目的是为了辅助计划生育。它可能包含了一...
此外,开发预产期计算相关的软件或应用程序时,还需要考虑用户界面的友好性和数据的隐私保护。 综上所述,预产期计算涉及到日期运算、农历公历转换以及医学知识的应用。开发者在实现这项功能时,不仅要掌握基础的...
在使用“预产期计算器”时,用户只需输入末次月经的日期,程序便会自动进行计算,展示预产期以及怀孕的天数和周数。如果在使用过程中遇到任何问题或发现bug,开发者提供了联系方式,这体现了其对用户体验的重视和对...
5. 计算过程:在生育商计算器中,AMH、AFC和BMI的数值会被输入到特定算法中,该算法基于医学研究和统计模型,来预测怀孕的可能性。这些数据可能经过权重分配和标准化处理,以便得出一个综合的生育商分数,用户可以...
怀孕报告,录取通知书等等很多种模板就不一一多说了 而且每一个模板可以制作的地方都精致到每一个显眼地方 该小程序的安装方法挺简单的,无需服务器和域名 我们只需要下载源码以后解压源码然后用微信开发者工具打开...
在文件列表中,“看一眼呗,又不会怀孕.jpg”可能是展示了一些几何图形及其计算示例的图片,“资料共享声明.pptx”可能包含有关如何使用和分享这些计算资源的协议,“总会有你想要的.xls”可能是包含各种几何图形...
计算两个日期之间的间隔,特别适计算怀孕周数、小孩有多少天等。 输入开始日期、结束日期,就会显示两个日期之间相差的年、月、日、周、时、分,比如2012-1-26与2012-3-15之间相隔0年,2个月,50天等;同时会显示...