C#中如何让一个时间日期加上天数

C#中如何让一个时间日期加上天数,第1张

在C中添加时间日期天数的步骤如下:

一、打开vs2008开发工具并创建新的表单应用程序。

二、打开项目,找到表单,然后选择“打开”。您可以双击或右击打开它。

三、在窗口中添加文本编辑器和按钮。

四、双击按钮按钮以添加单击事件并编辑其中的一些代码。

五、运行调试程序获得如下结果信息。

1970 年以后的时间,可以用 timeh 里的函数计算。时间精度为秒。按题目要求,输出时间单位用天。程序如下:

#include <stdioh>

#include <timeh>

time_t YMD_hhmmss_2_s70(int Y, int M, int D, int hh, int mm, int ss){

struct tm target_tm;

time_t tt;

time (&tt);

target_tm=localtime(&tt);

target_tm->tm_year = Y - 1900;

target_tm->tm_mon= M - 1;

target_tm->tm_mday = D;

target_tm->tm_hour = hh; // hour

target_tm->tm_min = mm;

target_tm->tm_sec = ss;

tt = mktime(target_tm); // from tm to time_t (s)

return tt;

}

int main()

{

int y1,m1,d1,y2,m2,d2;

time_t t1,t2;

int dt;

printf("input y1 m1 d1: ");

scanf("%d %d %d",&y1,&m1,&d1);

printf("\ninput y2 m2 d2: ");

scanf("%d %d %d",&y2,&m2,&d2);

t1 = YMD_hhmmss_2_s70(y1,m1,d1,0,0,0);

t2 = YMD_hhmmss_2_s70(y2,m2,d2,0,0,0);

dt = (t2-t1)/(243600);

printf("\ndt=%d\n",dt);

return 0;

}

这里未包含日期的合法性判断。

1970 年以前 要另写程序。某年的日子是当年的第几天可用下面函数得出:

int YMD_2_JD(int Y, int M, int D){

const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int JD,i;

JD=D;

for (i=0;i<M;i++) JD+=MonthDay[i];

if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;

return JD;

}

整年的天数,涉及闰年的判断:

某年是否闰年,用 (Y%4==0)&&(Y%100!=0)||(Y%400==0) 判断。闰年366天,平年365天。 有了这些,写程序不难。

未考虑公元前的年月日计算。

/

  在一个时间段计算出多少天

  @param beginDate 开始时间

  @param endDate 结束时间

  @param format 格式 如果  yyyy-MM-dd;yyyy

  @return 天数

 /

public static int getDay(String beginDate, String endDate, String format) {

try {

// 日期 *** 作类,设置制定的格式

SimpleDateFormat sim = new SimpleDateFormat(format);

Date d1 = simparse(beginDate); // 传入开始时间

Date d2 = simparse(endDate);   // 传入结束时间

//计算开始时间和结束时间的时间差

int num = (int) ((d2getTime() - d1getTime()) / (3600L  1000  24));

if(!formatequals("yyyy")) {

num = num + 1;

}

return num;

} catch (Exception e) {

eprintStackTrace();

return 0;

}

}

public static void main(String[] args) {

Systemoutprintln(getDay("2018", "2020", "yyyy"));

Systemoutprintln(getDay("2018-01-01", "2018-12-31", "yyyy-MM-dd"));

Systemoutprintln(getDay("2019-02-07", "2019-02-11", "yyyy-MM-dd"));

}

年的月的都有,有什么疑问可以问我。

#include<stdioh>

int main(){

int year,month;

int a=0;

printf("输入任意符合范围(1月~12月)的月份和(1900年~9999年)年份,且两个值之间空格分隔。\n");

scanf("%d %d",&year,&month);

if(year%4==0&&year%100!=0||year%400==0)

a=1;//结果为1代表闰年

switch(month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

printf("year =%d month =%d days=31\n",year,month);

break;

case 2:

if(a==1)

printf("year =%d month =%d days=29\n",year,month);

else

printf("year =%d month =%d days=28\n",year,month);

break;

case 4:

case 6:

case 9:

case 11:

printf("year =%d month =%d days=30\n",year,month);

break;

}

return 0;

}

我写给你吧\x0d\\x0d\Calendar calendar= CalendargetInstance(); //初始化日历对象\x0d\calendarset(CalendarYEAR, yearOne);//将Calendar的时间设置为yearOne年\x0d\calendarset(CalendarDATE, monthOne);\x0d\calendarset(CalendarDATE, dayOne);//monthOne月dayOne日\x0d\long timeOne= calendargetTimeInMillis();//将Calendar表示的时间转换成毫秒\x0d\\x0d\calendarset(CalendarYEAR, yearTwo);//将calendar的时间设置为yearTwo年\x0d\calendarset(CalendarDATE, monthTwo);\x0d\calendarset(CalendarDATE, dayTwo);//monthTwo月dayTwo日 \x0d\long timeTwo= calendargetTimeInMillis();//将Calendar表示的时间转换成毫秒\x0d\Date date1= new Date(timeOne);//用timeOne作参数构造date1\x0d\Date date2= new Date(timeTwo);//用timeTwo作参数构造date2\x0d\if(date2equals(date1))\x0d\{Systemoutprintln("两个日期的年、月、日完全相同");}\x0d\else if (date2after(date1))\x0d\{Systemoutprintln("你输入的第二个日期大于第一个日期");}\x0d\else if (date2before(date1))\x0d\{Systemoutprintln("你输入的第二个日期小于第一个日期");}\x0d\long days= (timeTwo - timeOne) / (long)(246060); //计算两日期相隔天数 \x0d\\x0d\最后这里(long)(246060); 记得要cast为long,不然出来的数字很搞笑得

以上就是关于C#中如何让一个时间日期加上天数全部的内容,包括:C#中如何让一个时间日期加上天数、给定年月日 怎样用C语言编程计算2个日期之间的时间天数、Java编写程序完成输人年份和月份,计算指定年份中的天数并含代码注解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9654292.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存