
#include <windows.h>
/* 以公元阳历来计算(非农历) */
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}}
int days(int *m,int *day)
{
int i,md=0
unsigned int d
for(i=0i<(*m-1)&&(i<11)i++)
md=md+_MONTH[i]
d=md+(*day)
return (int)((d+365)-365)
}
void main()
{
int month,day
RESET:
month=day=1
printf("月份:")
scanf("%d",&month)
printf("日期:")
scanf("%d",&day)
while((month<1||month>12)||(day<1||day>31))
{
printf("月份或日期有误,请重新输入!\n")
fflush(stdin)
Sleep(3000)
goto RESET
}
printf("今天是今年的第%d天\n",days(&month,&day))
}
月份与日期是用户输入接受来的,如果你想一运行就显示当前日期是今年的第几天。你可以使用time.h头文件里的有关函数来获取。获取后你只需将将强制转换为int型即可带入实参。具体如何获取网上有很多成熟的例子。
这个例子的实现原理与日历实现的原理一样:
如日历的原理如下截图:
算日期天数的公式是如下:
*** 作设备:戴尔笔记本电脑
*** 作系统:win10
*** 作程序:Excel2017
1、打开Excel,分别填入起始日期和截止日期,如下图所示。
2、任意选中一个Excel单元格,输入公式,输入等于号,用截止日期减去起始日期,如下图所示。
3、输入公式后,直接点击确定即可计算两个日期的天数,注意,一定要用大的日期减去小的日期,不然会出现问题;你也可以直接修改时间,公式会自动计算天数,如下图所示。
第一种是以毫秒为单位计算的。[java] view plaincopy
//伪代码
long startTime=System.currentTimeMillis() //获取开始时间
doSomeThing() //测试的代码段
long endTime=System.currentTimeMillis()//获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms")
第二种是以纳秒为单位计算的。
[java] view plaincopy
//伪代码
long startTime=System.nanoTime() //获取开始时间
doSomeThing() //测试的代码段
long endTime=System.nanoTime()//获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ns")
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)