知道今天星期几以及年月日,编写C程序,要求能算出任意天后是星期几以及年月日,求高手,在线等啊,急

知道今天星期几以及年月日,编写C程序,要求能算出任意天后是星期几以及年月日,求高手,在线等啊,急,第1张

int main()

{

int add;

int sub;

CDate date;

//++

datesetValue();

cout << "请输入你要增加的天数:" <<endl;

cin >>add;

dateshowDate();

dateaddNum(add);

dateshowDate();

//--

cout << "\n" << endl;

datesetValue();

cout << "请输入你要减少的天数:" <<endl;

cin >>sub;

dateshowDate();

datesubNum(sub);

dateshowDate();

return 0;

}

void CDate::setValue()//设置年月日

{

cout << "请输入年月日:" << endl;

cin >> year >> month >> day;

}

void CDate::addNum(int n)//增加任意天数

{

cout << "加"<< n <<"天是:"<<endl;

testYear(year,months); //根据输入的年份,来判断2月的天数

int i = months[month-1]-day; //剩余天数

if( n - i > 0) //如果加的天数比剩余天数大,月份要增加。

{ //否则直接加上相应的天数

while( n- i > 0)

{

month++; //月份加1

if(month > 12)

{

month=1;

year++;

//

testYear(year,months);// 判断是闰年还是平年

//

}

n=n-i; // 增加天数减去当前月份的剩余天数

i=months[month-1];//

}

day = n;

}else

day+=n;

}

void CDate::subNum(int no)//减少任意天数

{

cout << "减" << no <<"天是:" << endl;

testYear(year,months);

int i = day;

if( no - day >=0)

{

while( no-day>=0)

{

month--;

if(month<1)

{

month=12;

year--;

testYear(year,months);

}

no-=day;

day = months[month-1];

}

day=months[month-1]-no;

}else

{

day-=no;

}

}

void CDate::showDate()//显示年月日

{

cout <<year<< "年"<<month<<"月"<<day << "日" <<endl;

}

void CDate::testYear(int year,int months[])//设置闰年

{

months[0]=31;//1月

months[2]=31;

months[3]=30;

months[4]=31;

months[5]=30;

months[6]=31;//7月

months[7]=31;//8月

months[8]=30;

months[9]=31;

months[10]=30;

months[11]=31;//12月

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

{

months[1]=29;

}

else{

months[1]=28;

}

}

class CDate

{

public:

void setValue();//设置年月日

void addNum(int no);//增加任意天数

void subNum(int no);//减少任意天数

void showDate();//显示年月日

private:

int year; //年

int month;//月份

int day; //日

int months[12];//把月份的天数放到数组里

void testYear(int year,int months[]);//根据闰年去判断月份天数中的2月是29天还是28天

};

//这个可以吗??

对中国人来说,普遍使用的是yyyy-MM-dd。Java代码// 实现给定某日期,判断是星期几public static String getWeekday(String date){//必须yyyy-MM-ddSimpleDateFormat sd = new SimpleDateFormat(yyyy-MM-dd);SimpleDateFormat sdw = new SimpleDateFormat(E);Date d = null;try {d = sdparse(date);} catch (ParseException e) {eprintStackTrace();}return sdwformat(d);}判断今天是星期几import javautilCalendar; import javautilDate;public class WeekDay {public WeekDay() {super();// TODO Auto-generated constructor stub}public String getWeekDayString(){String weekString = ;final String dayNames[] = {星期日,星期一,星期二,星期三,星期四,星期五,星期六}; Calendar calendar = CalendargetInstance();Date date = new Date();calendarsetTime(date); int dayOfWeek = calendarget(CalendarDAY_OF_WEEK);weekString = dayNames[dayOfWeek - 1];return weekString;}/ @param args/public static void main(String[] args) {// TODO Auto-generated method stub

首先,把你想要知道的日期号,加上该月份代号,再除以7,能整除的就是星期日;不能整除的,余数是几,那天就是星期几。如果日期号和月份代号相加的和小于7,那么这个和是几,那天就是星期几。 例如:想知道2006年5月20日是星期几,就把“20”加上2006年5月的代号“0”,所得的和是 20 ,再用20除以7,余数是6,那么2006年5月20号就是星期6。 再举个例子:想知道2006年2月3日是星期几,那么就把“3”加上2月的代号“2”,和为5。由于5小于7,所以2006年2月3日就是星期5。 由于各年的月份代号不尽相同,下面给出各年月份代号的计算方法: 首先要有一本日历,然后随便找一天,例如2006年8月5日,那天是星期6,就把“6”减去“5”,所得的差为“1”,那么2006年8月的代号就是1,其他月份代号的计算方法可以次类推。 这个方法写成公式就是:该年月份代号=该月星期几-该月日期号。 注意:式中取该月日期号时,必须小于或等于7;取星期日时,数值按7计算,该月星期几的数值要大于日期号数值。

import javautilCalendar;

import javautilDate;

public class A {

public static void main(String[] args) {

 Date date=new Date();

 Calendar cal = CalendargetInstance();

 calsetTime(date);

 Systemoutprintln(calget(CalendarDAY_OF_WEEK));

}

}

假如今天星期二,输出则为3,解释下,输出的1是从星期天开始的,也就是说,星期天为1,星期一为2,星期六为7,你可以根据这个数据减去1,就是我们日常使用的日期了。

1 接受日期输入

2 使用mktime和成tm结构

3 使用localtime再转换成tm

4 取出tm中的tm_wday

#include <timeh>

#include <stdioh>

int main(int argc, char argv[])

{

int year, mon, day;

time_t t;

struct tm tmval;

static char weekdays[7]={"Sunday", "Monday", "Tuesday", "Wednsday", "Thursday", "Friday", "Saturday"};

puts("Please input a date(yyyy-mm-dd):");

scanf("%d-%d-%d", &year, &mon, &day);

printf("year=%d, mon=%d, day=%d\n", year, mon, day);

time(&t);

tmval = localtime(&t); / for tm_isdst field /

tmvaltm_year = year-1900;

tmvaltm_mon = mon-1;

tmvaltm_mday = day;

tmvaltm_hour = 0;

tmvaltm_min =0;

tmvaltm_sec = 1;

t = mktime(&tmval);

if( t == -1){

puts("Invalid time value!");

return -1;

}

tmval = localtime(&t);

printf("%d-%d-%d is %s\n", tmvaltm_year + 1900, tmvaltm_mon+1, tmvaltm_mday, weekdays[tmvaltm_wday]);

return 0;

}

以上就是关于知道今天星期几以及年月日,编写C程序,要求能算出任意天后是星期几以及年月日,求高手,在线等啊,急全部的内容,包括:知道今天星期几以及年月日,编写C程序,要求能算出任意天后是星期几以及年月日,求高手,在线等啊,急、Java中如何判断某天是星期几、输入一个日期,****年**月**日,如何判断是星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9796735.html

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

发表评论

登录后才能评论

评论列表(0条)

保存