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中如何判断某天是星期几、输入一个日期,****年**月**日,如何判断是星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)