Copy link to clipboard
Copied
I know today " currDateTime.date ". I need to 2 previous and 2 next day on calendar for use this information on another mc.
Example:
previous 2 | previous1 | Today | Next 1 | Next2 |
---|---|---|---|---|
28 | 29 | 1 | 2 | 3 |
package {
import flash.display.Sprite;
import flash.text.TextFormat;
import flash.text.TextField;
import flash.events.Event;
import fl.controls.ComboBox;
import fl.data.DataProvider;
import fl.controls.NumericStepper;
public class Calendar extends Sprite {
//variables
private var cellW:Number; //cell width
private var cellP:Number; //cell padding
private var allDatesCells:Array = new Array();
private var dateCellFormat:TextFormat;
private var weekDays:Array = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
private var dayLabelTxtFmt:TextFormat;
private var currDateTime:Date = new Date();
private var firstDay:Date = new Date(currDateTime.fullYear,currDateTime.month,1);
private var firstDayColumn:uint = firstDay.day;
private var daysOfMonths:Array = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
private var maxDays:uint;
private var months:Array = [
{label:"January", data:0},
{label:"February", data:1},
{label:"March", data:2},
{label:"April", data:3},
{label:"May", data:4},
{label:"June", data:5},
{label:"July", data:6},
{label:"August", data:7},
{label:"September", data:8},
{label:"October", data:9},
{label:"November", data:10},
{label:"December", data:11},
];
private var monthPickerCB:ComboBox; //combobox to pick a month
private var yearPickerNS:NumericStepper; //numeric stepper to pick a year
public function Calendar( fontFace:String = "Arial", fontSize:int = 15,
cellWidth:Number = 30, padding:Number = 3,
originX:Number = 15, originY:Number = 15,
cbX:Number = 15, cbY:Number = 15,
nsX:Number = 26, nsY:Number = 15,
monthsRange:int = 39 )
{
cellW = cellWidth;
cellP = padding;
monthPickerCB = new ComboBox();
yearPickerNS = new NumericStepper();
setTextFormat( fontFace, fontSize );
makeDatesCellGrid( originX, originY );
makeDaysLabels( originX, originY );
monthSetup();
monthPicker( cbX, cbY );
yearPicker( nsX, nsY, monthsRange );
}
private function setTextFormat(whichFont:String, size:int):void {
//date text format
dateCellFormat = new TextFormat();
dateCellFormat.font = whichFont;
dateCellFormat.color = 0xFFFFFF;
dateCellFormat.size = size;
dateCellFormat.align = "center";
//day label text format
dayLabelTxtFmt = new TextFormat();
dayLabelTxtFmt.font = "_sans";
dayLabelTxtFmt.color = 0x000000;
dayLabelTxtFmt.size = size - 3;
}
private function makeDatesCellGrid(cellXPos:Number, cellYPos:Number):void {
//Create grid of date cells
for (var i:int = 0; i < 42; i++) {
var dateCell:TextField = new TextField();
addChild(dateCell);
//position cells to form a grid (7 x 6 = 42)
dateCell.x = cellXPos + (cellW * (i-(Math.floor(i/7)*7)));
dateCell.y = cellYPos + (cellW * Math.floor(i/7));
//put all date cells into array for further access
allDatesCells.push(dateCell);
}
}
private function makeDaysLabels(cellXPos:Number, cellYPos:Number):void {
//Add week day names
for (var i:int = 0; i < 7; i++) {
var dayLabel:TextField = new TextField();
addChild(dayLabel);
dayLabel.selectable = false;
dayLabel.text = weekDays;
dayLabel.setTextFormat(dayLabelTxtFmt);
dayLabel.x = cellXPos + (cellW * i);
dayLabel.y = cellYPos - 15;
}
}
private function monthSetup():void {
for (var i:int = 0; i < 42; i++){
allDatesCells.text = "";
//decor all cells
allDatesCells.background = true;
allDatesCells.backgroundColor = 0x005555;
allDatesCells.border = true;
allDatesCells.borderColor = 0xCCCCCC;
allDatesCells.selectable = false;
allDatesCells.width = allDatesCells.height = cellW - cellP;
allDatesCells.setTextFormat(dateCellFormat);
}
arrangeDates();
prevMonthDates();
nextMonthDates();
}
private function arrangeDates():void {
//get column number for first day of the month
if (firstDay.day == 0)
{
//when last date of previous month is on saturday then move to second row
firstDayColumn = firstDay.day + 7;
}
else
{
firstDayColumn = firstDay.day;
}
//get max days for current month w.r.t leap year if any
maxDays = (firstDay.getFullYear()%4 == 0 && firstDay.getMonth() == 1 ? 29 : daysOfMonths[firstDay.getMonth()]);
//put dates for current month
for (var i:int = 0; i < maxDays; i++) {
allDatesCells[firstDayColumn + i].text = i + 1;
allDatesCells[firstDayColumn + i].setTextFormat(dateCellFormat);
allDatesCells[firstDayColumn + i].alpha = 1;
//Highlight today
if (firstDay.fullYear == currDateTime.fullYear && firstDay.month == currDateTime.month)
{
if(allDatesCells[firstDayColumn + i].text == currDateTime.date)
{
allDatesCells[firstDayColumn + i].backgroundColor = 0xEE5D15;
trace(currDateTime.date +i);
}
}
}
}
private function prevMonthDates():void {
var prevMonthFirstDay:Date = new Date(firstDay.fullYear,firstDay.month,firstDay.date - 1);
for (var i:int = firstDayColumn-1; i >= 0; i--) {
allDatesCells.text = prevMonthFirstDay.date - ((firstDayColumn - 1) - i);
allDatesCells.setTextFormat(dateCellFormat);
allDatesCells.alpha = 0.5;
}
}
private function nextMonthDates():void {
for (var i:int = 1; i < (42 - maxDays - (firstDayColumn - 1)); i++){
allDatesCells[(firstDayColumn - 1) + i + maxDays].text = i;
allDatesCells[(firstDayColumn - 1) + i + maxDays].setTextFormat(dateCellFormat);
allDatesCells[(firstDayColumn - 1) + i + maxDays].alpha = 0.5;
}
}
private function monthPicker(cbX:Number, cbY:Number):void {
monthPickerCB.dataProvider = new DataProvider(months);
addChild(monthPickerCB);
//position combobox
monthPickerCB.x = cbX;
monthPickerCB.y = (cellW * 6) + cbY;
monthPickerCB.selectedIndex = currDateTime.month;
monthPickerCB.addEventListener(Event.CHANGE, pickMonth);
}
private function pickMonth(e:Event):void {
firstDay.month = ComboBox(e.target).selectedItem.data;
monthSetup();
}
private function yearPicker(nsX:Number, nsY:Number, maxYrsRange:int):void {
yearPickerNS.maximum = currDateTime.fullYear + maxYrsRange;
yearPickerNS.minimum = currDateTime.fullYear - maxYrsRange;
yearPickerNS.value = currDateTime.fullYear;
addChild(yearPickerNS);
//position numeric stepper
yearPickerNS.x = monthPickerCB.width + nsX;
yearPickerNS.y = (cellW * 6) + nsY;
yearPickerNS.addEventListener(Event.CHANGE, pickYear);
}
private function pickYear(e:Event):void {
firstDay.fullYear = e.target.value;
monthSetup();
}
}
}
Thanks for any help.
Copy link to clipboard
Copied
hi, use prevNextDate()
var today:Date=new Date();
var oneday:int = 24*60*60*1000;
var prev1Day:Date=prevNextDate(-1);
var prev2Day:Date=prevNextDate(-2);
var next1Day:Date=prevNextDate(1);
var next2Day:Date=prevNextDate(2);
etc
function prevNextDate(n:int):Date){
return new Date(today.time-n*oneday);
}
Copy link to clipboard
Copied
Thank you kglad I use similar this
Add in class file
static public var binko:Number=0;//current day
static public var sinko:Number=0;//current day
static public var gecenson:Number=0;//end of the prev month
static public var buaysonu:Number=0;//end of the current month
then use this code on frame
if(Calendar.sinko==1){
birsay.text=String(Calendar.gecenson-1)
ikisay.text=String(Calendar.gecenson)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
}else if(Calendar.sinko==2){
birsay.text=String(Calendar.gecenson)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
}else if(Calendar.sinko<27 && Calendar.binko>2){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
//FEBRUARY IF 28
}else if(Calendar.sinko==27 && Calendar.binko>2 && Calendar.buaysonu==28 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text="1";
}else if(Calendar.sinko==28 && Calendar.binko>2 && Calendar.buaysonu==28 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text="1";
bessay.text="2";
}
//FEBRUARY IF 29
else if(Calendar.sinko==27 && Calendar.binko>2 && Calendar.buaysonu==29 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
trace("29/1")
}else if(Calendar.sinko==28 && Calendar.binko>2 && Calendar.buaysonu==29 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text="1";
trace("29/2")
}else if(Calendar.sinko==29 && Calendar.binko>2 && Calendar.buaysonu==29 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text="1";
bessay.text="2";
trace("29/3")
}
///NORMAL 30
else if(Calendar.sinko==27 && Calendar.binko>2 && Calendar.buaysonu==30 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
trace("30/1")
}else if(Calendar.sinko==28 && Calendar.binko>2 && Calendar.buaysonu==30 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
trace("30/2")
}else if(Calendar.sinko==29 && Calendar.binko>2 && Calendar.buaysonu==30 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text="1";
trace("30/3")
}else if(Calendar.sinko==30 && Calendar.binko>2 && Calendar.buaysonu==30 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text="1";
bessay.text="2";
trace("30/4")
}
///NORMAL 31
else if(Calendar.sinko==27 && Calendar.binko>2 && Calendar.buaysonu==31 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
trace("31/1")
}else if(Calendar.sinko==28 && Calendar.binko>2 && Calendar.buaysonu==31 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
trace("31/2")
}else if(Calendar.sinko==29 && Calendar.binko>2 && Calendar.buaysonu==31 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text=String(Calendar.sinko+2)
trace("31/3")
}else if(Calendar.sinko==30 && Calendar.binko>2 && Calendar.buaysonu==31 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text=String(Calendar.sinko+1)
bessay.text="1";
trace("31/4")
}else if(Calendar.sinko==31 && Calendar.binko>2 && Calendar.buaysonu==31 ){
birsay.text=String(Calendar.sinko-2)
ikisay.text=String(Calendar.sinko-1)
ucsay.text=String(Calendar.sinko)
dortsay.text="1";
bessay.text="2";
trace("31/5")
}
Copy link to clipboard
Copied
you're welcome.